Я могу перебрать все строки в скрипте php и сделать
UPDATE mytable SET title = "'.trim($row['title']).'" where id = "'.$row['id'].'";
и обрезка может удалить \ n
Но мне просто интересно, можно ли сделать что-то то же самое в одном запросе?
update mytable SET title = TRIM(title, '\n') where 1=1
это будет работать? Затем я могу просто выполнить этот запрос, не выполняя цикл!
Благодарность
(PS: я мог бы проверить это, но таблица довольно большая и не хочу связываться с данными, поэтому просто подумайте, тестировали ли вы что-то подобное раньше)
Ответы:
ваш синтаксис неверен:
update mytable SET title = TRIM(TRAILING '\n' FROM title)
Дополнение:
Если символ новой строки находится в начале поля:
update mytable SET title = TRIM(LEADING '\n' FROM title)
источник
UPDATE test SET log = REPLACE(REPLACE(log, '\r', ''), '\n', '');
работал у меня.
пока он похож, он также избавится от \ r \ n
http://lists.mysql.com/mysql/182689
источник
1) Замените все символы новой строки и табуляции пробелами.
2) Удалите все начальные и конечные пробелы.
UPDATE mytable SET `title` = TRIM(REPLACE(REPLACE(REPLACE(`title`, '\n', ' '), '\r', ' '), '\t', ' '));
источник
update mytable set title=trim(replace(REPLACE(title,CHAR(13),''),CHAR(10),''));
Выше работает нормально.
источник
Удаляет завершающие возвраты при импорте из Excel. Когда вы выполните это, вы можете получить ошибку, что нет WHERE; игнорировать и выполнять.
UPDATE table_name SET col_name = TRIM(TRAILING '\r' FROM col_name)
источник
UPDATE mytable SET title=TRIM(REPLACE(REPLACE(title, "\n", ""), "\t", ""));
источник
Мои 2 цента.
Чтобы избавиться от моих \ n, мне нужно было сделать \\ n. Надеюсь, это кому-то поможет.
update mytable SET title = TRIM(TRAILING '\\n' FROM title)
источник
Для символов новой строки
UPDATE table_name SET field_name = TRIM(TRAILING '\n' FROM field_name); UPDATE table_name SET field_name = TRIM(TRAILING '\r' FROM field_name); UPDATE table_name SET field_name = TRIM(TRAILING '\r\n' FROM field_name);
Для всех символов пробела
UPDATE table_name SET field_name = TRIM(field_name); UPDATE table_name SET field_name = TRIM(TRAILING '\n' FROM field_name); UPDATE table_name SET field_name = TRIM(TRAILING '\r' FROM field_name); UPDATE table_name SET field_name = TRIM(TRAILING '\r\n' FROM field_name); UPDATE table_name SET field_name = TRIM(TRAILING '\t' FROM field_name);
Подробнее: Функция MySQL TRIM
источник
Играя с приведенными выше ответами, этот работает для меня
REPLACE(REPLACE(column_name , '\n', ''), '\r', '')
источник