
MySQLでデータの一部分から特定の文字列を見つけて別の文字列に一括して返還したい場合には、「REPLACE関数」を使う。 簡単だけど、一応覚書しておく。
文字列置換のSQL文の例
例えば、テーブル"t"のテキストフィールド"f1"に保存されているデータの中から"TEST"という文字列を見つけて、それを"テスト"に変更したい場合の記述は以下のようになる。
update t set f1 = replace(f1,'TEST','テスト')
REPLACE関数
ここで使われている「REPLACE関数」の構文は以下のとおり。
REPLACE(str,from_str,to_str) "str"は、対象となるフィールド、"from_str"は、置換したい文字列、"to_str"は、置換後の文字列。
ちなみに、大文字小文字が区別されるため、replace(f1,'TEST','テスト') とした場合、"TEST"だけが置換され、"test"は、そのまま置換されずに残ってしまうので注意が必要。
詳しくは、MySQLのリファレンス「11.3. 文字列関数」を参照。
それから、必ず更新前に結果がどうなるかは確認すること。
以下のようなSELECT文を発行すれば、置換後のデータが簡単に確認できる。
SELECT f1,replace(f1,'TEST','テスト') as after_f1 FROM t
データベース上のすべてのテーブルを検索して文字列置換する方法
MySQLのデータベースのすべてのテーブルを対象に特定の文字列を検索して置換したい際には以下のような便利なツールもある。

MySQL:データベース上の全てのテーブルを検索して文字列置換をしてくれる便利なWebツール「Search-Replace-DB-master」
WordPressを別の環境(別のURL)に移行したい場合、デーベース内の色々なテーブルに登録されている移行元URLを移行先URLに変更する必要があります。単純にMySQLのバックアップをとってSQLファイルを文字列検索して置換すれば良いの...


コメント