回答:
問題のテーブル名とフィールドに合わせて変更table_name
しfield
ます。
UPDATE table_name SET field = REPLACE(field, 'foo', 'bar') WHERE INSTR(field, 'foo') > 0;
WHERE instr(field, 'foo') > 0;
(2つの検索を実行しないため)...
WHERE
節なしUPDATE
ですべての行で...
UPDATE table_name
SET field = replace(field, 'string-to-find', 'string-that-will-replace-it');
また、別のフィールドの値に基づいて検索および置換したい場合は、CONCATを実行できます。
update table_name set `field_name` = replace(`field_name`,'YOUR_OLD_STRING',CONCAT('NEW_STRING',`OTHER_FIELD_VALUE`,'AFTER_IF_NEEDED'));
これをここに置いて、他の人がすぐに見つけられるようにします。
私の経験では、最速の方法は
UPDATE table_name SET field = REPLACE(field, 'foo', 'bar') WHERE field LIKE '%foo%';
INSTR()
方法は、最速秒と省略されているWHERE
完全句は、列が索引付けされていない場合でも、最も遅いです。
[field_name]
、 "foo"、 "bar");