mysqlのデータ行から改行文字を削除するにはどうすればよいですか?


87

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:テストすることはできましたが、テーブルが非常に大きく、データをいじりたくないので、以前にこのようなものをテストしたことがあるかどうかを考えてみてください)


where句を取り除くことができます...セットに他の文字が含まれている可能性があるため(キャリッジリターン '\ r'など)、トリムには注意してください
jkelley 2009年

この質問をする前に、それをテストしておく必要があります。できます。大きなテーブルでそれをテストしたい場合は、LIMIT句を使用できます。
Lukasz Lysik 2009年

WHERE句の何が問題になっていますか?ただ好奇心が強い
Phill Pafford 2009年

@PhillPafford技術的には、冗長なだけです。(私はこれが5歳以上であることを知っていますが、他の人がそれを読むのを助けるかもしれません。)
Bing

回答:


120

構文が間違っています:

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

6
MSSQLに由来するこの構文は、私にとって非常に異質なものでした。擬似コードを使用していると思いました!しかし、それは
ジェフ

参考のためにTRIM()に関するドキュメント。
マーク

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

私のために働いた。

同様ですが、\ r \ nも削除されます

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


8
これは末尾の\ nを削除せず、すべて\ nを削除します。これはここでは望ましくありません。
longneck 2013

20
これは正確なOPには機能しなかったかもしれませんが、私が扱っていたsitch、+ 1
Mike Purcell

私のために働いた、ありがとう。
エクソン2015

まさに私が必要としていたもの。
user3453428 2016年

14

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

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

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


6

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

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

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

4
これは末尾の\ nを削除せず、すべて\ nを削除します。これはここでは望ましくありません。
longneck 2013

0

私の2セント。

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

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

0

改行文字の場合

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

続きを読む: MySQLTRIM関数


0

上記の答えで遊んで、これは私のために働きます

REPLACE(REPLACE(column_name , '\n', ''), '\r', '')
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.