1

2 つの列を持つテーブルがありid, text ます。テキスト列の改行文字をスペースに置き換えたいと思います。

UPDATE txt SET text=REPLACE(text, '\n', ' ') WHERE text LIKE %\n%

これは機能しますか?このコードを実行する前に、確認したいことがあります。テーブルには大量のデータがあるため、テーブルをクラッシュさせたくありません。

4

2 に答える 2

1

まず、データが含まれる少なくとも 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 行だけが破損している可能性があるため、簡単に修正できるはずです。

于 2013-07-28T09:19:14.143 に答える
0

最初にテーブルのバックアップを取ります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%
于 2013-07-28T09:45:16.283 に答える