283

テーブル内の特定のフィールドでテキスト検索と置換を行う MySQL クエリはどれですか?

つまり、値を持つフィールドを持つレコードが になるように検索しfooて置換します。barhello foohello bar

4

7 に答える 7

533

table_name問題のテーブル名とフィールドに一致するようにとを変更fieldします。

UPDATE table_name SET field = REPLACE(field, 'foo', 'bar') WHERE INSTR(field, 'foo') > 0;
于 2008-09-24T03:23:46.867 に答える
94
UPDATE table_name 
SET field = replace(field, 'string-to-find', 'string-that-will-replace-it');
于 2008-09-24T03:22:45.650 に答える
10
 UPDATE table SET field = replace(field, text_needs_to_be_replaced, text_required);

たとえば、John の出現箇所をすべて Mark に置き換えたい場合は、以下を使用します。

UPDATE student SET student_name = replace(student_name, 'John', 'Mark');
于 2014-07-08T10:53:37.730 に答える
7

また、別のフィールドの値に基づいて検索および置換する場合は、CONCAT を実行できます。

update table_name set `field_name` = replace(`field_name`,'YOUR_OLD_STRING',CONCAT('NEW_STRING',`OTHER_FIELD_VALUE`,'AFTER_IF_NEEDED'));

他の人がすぐに見つけられるように、これをここに置くだけです。

于 2012-05-05T09:18:39.210 に答える
1

文字列の置換機能がそれを行います。

于 2008-09-24T03:22:16.947 に答える
0

上記のコマンド ラインを次のように使用しました。 update TABLE-NAME set FIELD = replace(FIELD, 'And', 'and'); 目的は、And を and に置き換えることでした (「A」は小文字にする必要があります)。問題は、データベースで「And」を見つけることができないことですが、「%And%」のように使用すると、単語の一部である他の多くの and や、既に小文字になっているものと一緒に見つけることができます。

于 2014-08-22T23:33:30.993 に答える