MySQLで文字列内のすべての部分文字列を別の文字列に一括置換する方法
MySQLのREPLACE()関数で部分文字列を一括置換する
MySQLでは、REPLACE()関数を使用することで、文字列内に出現するすべての部分文字列を、別の部分文字列に一度に置き換えることができます。
構文
REPLACE(str, find_string, replace_with)
各引数の意味は以下の通りです。
- str: 置換対象となる元の文字列。
- find_string: 文字列 str の中に1回以上出現する、検索対象の部分文字列。
- replace_with: find_string が見つかったすべての箇所に適用される、置換後の部分文字列。
使用例
mysql> SELECT REPLACE('Ram, My Name is Ram', 'Ram', 'Shyam');
+------------------------------------------------+
| REPLACE('Ram, My Name is Ram', 'Ram', 'Shyam') |
+------------------------------------------------+
| Shyam, My Name is Shyam |
+------------------------------------------------+
1 row in set (0.00 sec)この例では、文字列「Ram, My Name is Ram」の中に含まれるすべての「Ram」が「Shyam」に置き換えられ、「Shyam, My Name is Shyam」という結果が返されています。
補足:テーブルのデータをまとめて置き換える
REPLACE() 関数は UPDATE 文と組み合わせることで、テーブルのカラムに格納されたデータを一括して置き換えることもできます。
UPDATE テーブル名
SET カラム名 = REPLACE(カラム名, '置換前の文字列', '置換後の文字列');
なお、REPLACE() 関数は検索時に大文字と小文字を区別する点に注意してください。置換処理を行う際は、対象データの表記ゆれがないか事前に確認しておくと安全です。
-
MySQLで文字列の最初に出現する語のみを置換する方法
REGEXP_REPLACE()で最初の出現箇所だけを置換する文字列内に同じ単語が複数回登場する場合、そのうち最初の1回だけを別の単語に置き換えたいことがあります。MySQLではREGEXP_REPLACE()関数を使うことで、この要件を簡単に実現できます。なお、この関数はMySQL 8.0以降で利用可能です。例として、次のような文字列を考えてみましょう。This is my first MySQL query. This is the first tutorial. I am learning for the first time.この文字列には「first」という単語が3回出現しますが、最
-
Pythonで文字列内のすべての出現箇所を別の文字列に置換する方法
str.replace()メソッドを使う方法Pythonの文字列クラス(str)には、replaceメソッドが標準で用意されています。このメソッドは「置換したい文字列」と「置換後の文字列」を引数として受け取り、文字列オブジェクトに対して呼び出すことで、該当するすべての出現箇所を一括して置き換えることができます。たとえば、次のように呼び出すと、文字列中のすべての「no」が「yes」に置き換えられます。>>> no one knows how.replace(no, yes) yes one kyesws how >>> chihuahua.replace(hu