2 つの列を持つテーブルがありid, text
ます。テキスト列の改行文字をスペースに置き換えたいと思います。
UPDATE txt SET text=REPLACE(text, '\n', ' ') WHERE text LIKE %\n%
これは機能しますか?このコードを実行する前に、確認したいことがあります。テーブルには大量のデータがあるため、テーブルをクラッシュさせたくありません。
まず、データが含まれる少なくとも 1 つの行 ID を見つけます\n
。
SELECT id, text FROM txt
WHERE text LIKE '%\n%'
LIMIT 1
をメモしてid
、覚えておいてください。次に、クエリを使用して置き換えてみてください。
UPDATE txt SET text=REPLACE(text, '\n', ' ')
WHERE id = 123
AND text LIKE '%\n%'
ここで、更新が成功したかどうかを確認します (空の結果が表示されるはずです)。
SELECT id, text FROM txt
WHERE text LIKE '%\n%'
AND id = 123
正常に機能した場合は、同じ更新を実行しますが、制限はありません。
何か問題が発生した場合、最初のステップで確認した 1 行だけが破損している可能性があるため、簡単に修正できるはずです。
最初にテーブルのバックアップを取りますtxt
。
select
*
into tt_txt_2013_07_28
from txt
count
のレコードを見つけますwhere text LIKE %\n%
select count(*)
from txt
where text LIKE %\n%
注意してくださいcount
これで、更新クエリを実行してカウントを一致させることができます。悪い結果が得られた場合は、バックアップ テーブルからレコードをバックアップできます。 tt_txt_2013_07_28
UPDATE txt
SET text=REPLACE(text, '\n', ' ')
WHERE text LIKE %\n%