Как удалить символы новой строки из строк данных в MySQL? - PullRequest
77 голосов
/ 01 октября 2009

Я могу перебрать все строки в 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 ]

110 голосов
/ 01 октября 2009

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

update mytable SET title = TRIM(TRAILING '\n' FROM title)
105 голосов
/ 24 июля 2012
UPDATE test SET log = REPLACE(REPLACE(log, '\r', ''), '\n', '');

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

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

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

12 голосов
/ 11 декабря 2013

1) Заменить все новая строка и табуляция символами пробелов.

2) Удалить все начальные и конечные пробелы.

 UPDATE mytable SET `title` = TRIM(REPLACE(REPLACE(REPLACE(`title`, '\n', ' '), '\r', ' '), '\t', ' '));
8 голосов
/ 01 июня 2015

update mytable set title=trim(replace(REPLACE(title,CHAR(13),''),CHAR(10),''));

выше работает для штрафа.

3 голосов
/ 18 июня 2015

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

UPDATE table_name SET col_name = TRIM(TRAILING '\r' FROM col_name)
2 голосов
/ 02 октября 2009
UPDATE mytable SET title=TRIM(REPLACE(REPLACE(title, "\n", ""), "\t", ""));
0 голосов
/ 13 февраля 2017

Мои 2 цента.

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

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