2009-10-01 3 views
64

я могу петлю через все строки в PHP скрипт и сделатьКак удалить новые строковые символы из строк данных в mysql?

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

и дифферента может удалить \ п

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

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

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

благодаря

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

+0

Вы можете просто избавиться от где п ... быть осторожным ж/вашей отделки, хотя, потому что вы, возможно, есть и другие символы в наборе (например, возврат каретки «\ г») – jkelley

+0

Вы должны быть испытаны, что перед вы задаете этот вопрос. Оно работает. Если вы хотите проверить, что на большой таблице вы можете использовать предложение LIMIT. –

+0

Что не так с предложением WHERE? Просто любопытно –

ответ

94

вашего синтаксиса не так:

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

, исходящий из MSSQL, этот синтаксис был очень чужд мне. Я думал, что вы используете псевдокод! но он работал :) – Jeff

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

это не удаляет trailing \ n, он удаляет все \ n, что здесь не нужно. – longneck

85
UPDATE test SET log = REPLACE(REPLACE(log, '\r', ''), '\n', ''); 

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

в то время как его похожим, он будет также избавиться от \ г \ п

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

+3

это не удаляет trailing \ n, он удаляет все \ n, что здесь нежелательно. – longneck

+15

Возможно, это не сработало для точного ОП, но помогло в сите, с которым я имел дело, +1 –

+0

Работал для меня, спасибо. – Exoon

11

1) Установите на место все новую линию и Вкладка знаков с пробелами.

2) Убрать все ведущие и задние.

UPDATE mytable SET `title` = TRIM(REPLACE(REPLACE(REPLACE(`title`, '\n', ' '), '\r', ' '), '\t', ' ')); 
7

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

выше работает отлично.

+3

Это полезно, когда «\ n» не работает (проверен на workbench mysql) – Mohamed23gharbi

1

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

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

Мои 2 цента.

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

update mytable SET title = TRIM(TRAILING '\\n' FROM title) 
Смежные вопросы