91

PHPスクリプトのすべての行をループして、次のことを行うことができます

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

およびトリムは削除できます\n

しかし、1回のクエリで同じことができるかどうか疑問に思っていましたか?

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

それはうまくいきますか?その後、ループスルーする必要なく、このクエリを実行できます。

ありがとう

(PS:テストできましたが、テーブルは非常に大きく、データを台無しにしたくないので、以前にこのようなものをテストしたことがあるかどうかを考えてください)

4

9 に答える 9

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

私のために働いた。

似ていますが、\r\nも削除されます

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

于 2012-07-24T08:30:35.227 に答える
125

あなたの構文は間違っています:

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

添加:

改行文字がフィールドの先頭にある場合:

update mytable SET title = TRIM(LEADING '\n' FROM title)
于 2009-10-01T16:23:53.720 に答える
18

1) すべての改行文字とタブ文字をスペースに置き換えます。

2)先頭と末尾のスペースをすべて削除します。

 UPDATE mytable SET `title` = TRIM(REPLACE(REPLACE(REPLACE(`title`, '\n', ' '), '\r', ' '), '\t', ' '));
于 2013-12-11T18:54:13.680 に答える
9

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

上記は正常に機能しています。

于 2015-06-01T08:07:46.413 に答える
7

Excel からのインポート時に末尾の改行を削除します。これを実行すると、WHERE がないというエラーが表示される場合があります。無視して実行します。

UPDATE table_name SET col_name = TRIM(TRAILING '\r' FROM col_name)
于 2015-06-17T22:41:33.323 に答える
0

私の2セント。

\n を取り除くには、\\n を実行する必要がありました。それが誰かを助けることを願っています。

update mytable SET title = TRIM(TRAILING '\\n' FROM title)
于 2017-02-13T00:16:38.097 に答える