Как удалить новые символы строки из строк данных в mysql?


Я могу перебирать все строки в PHP скрипте и делать

UPDATE mytable SET title = "'.trim($row['title']).'" where id = "'.$row['id'].'";

и обрезка может удалить n

но мне просто интересно, если что-то же самое можно сделать в одном запросе?

 update mytable SET title = TRIM(title, 'n') where 1=1

будет ли она работать? Затем я могу просто выполнить этот запрос, не требуя цикла!

спасибо

(PS: я мог бы проверить его, но таблица довольно большая и не хочу возиться с данными, так что просто подумал, если вы протестировали что-то вроде этого раньше)

7 70

7 ответов:

ваш синтаксис неправильный:

update mytable SET title = TRIM(TRAILING '\n' FROM title)
UPDATE test SET log = REPLACE(REPLACE(log, '\r', ''), '\n', '');

работал для меня.

хотя он похож, он также избавится от \r\n

http://lists.mysql.com/mysql/182689

1) заменить все новая строка и tab знаков с пробелами.

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),''));

выше работает нормально.

UPDATE mytable SET title=TRIM(REPLACE(REPLACE(title, "\n", ""), "\t", ""));

удаляет конечные возвраты при импорте из Excel. При выполнении этого, вы можете получить сообщение об ошибке, что нет где; игнорировать и выполнить.

UPDATE table_name SET col_name = TRIM(TRAILING '\r' FROM col_name)

мои 2 цента.

чтобы избавиться от моих \n, мне нужно было сделать \\n. надеюсь, что это поможет кому-то.

update mytable SET title = TRIM(TRAILING '\n' FROM title)