MySQLのREPLACE()
関数を使用すると、部分文字列のすべての出現箇所を別の文字列に置き換えることができます。これにより、ある単語のすべての出現箇所を別の単語に置き換えるなどのことができます。
この記事では、その使用法を示します。
構文
構文は次のとおりです。
REPLACE(str,from_str,to_str)
str
部分文字列を含む文字列です。 from_str
別の文字列に置き換えるサブ文字列です。そしてto_str
古い文字列を置き換える新しい文字列です。
例
基本的な例は次のとおりです。
SELECT REPLACE('Cats and dogs and cats and rabbits', 'and', 'or') AS Result;
結果:
+---------------------------------+ | Result | +---------------------------------+ | Cats or dogs or cats or rabbits | +---------------------------------+
この場合、and
という単語を入れ替えるだけです。 or
という単語で 。その単語が3回出現したため、3つすべてが置き換えられました。
ケースセンシティブ
REPLACE()
を覚えておくことが重要です 関数では大文字と小文字が区別されます。
例:
SELECT REPLACE('Cats and dogs and cats and rabbits', 'cat', 'flea') AS Result;
結果:
+-------------------------------------+ | Result | +-------------------------------------+ | Cats and dogs and fleas and rabbits | +-------------------------------------+>
この場合、cat
のインスタンスは1つだけです。 1つのインスタンスだけが正しいケースを持っていたため、置き換えられました。最初のインスタンスには大文字のC
がありました 一致しませんでした。
部分文字列を削除する
サブストリングを空のストリング(''
)に置き換えるだけで、サブストリングを完全に削除することもできます。 ):
SELECT REPLACE('http://www.database.guide', 'www.', '') AS Result;
結果:
+-----------------------+ | Result | +-----------------------+ | http://database.guide | +-----------------------+
セーフガード
これを行う別の(おそらくより安全な)方法は、周囲のテキストの一部を含めてから、不要な部分を削除することです。
SELECT REPLACE('http://www.database.guide', 'http://www.', 'http://') AS Result;
結果:
+-----------------------+ | Result | +-----------------------+ | http://database.guide | +-----------------------+
これにより、削除してはならない部分文字列を誤って削除することを防ぎます。たとえば、http://bestwww.com
のようなURLがある場合 、誤ってhttp://bestcom
に変わる可能性があります セーフガードなし。
テキストを(単に削除するだけでなく)置き換える場合にも、同じセーフガードを適用できます。例:
SELECT REPLACE('Land of cats and dogs and sand', ' and ', ' or ') AS Result;
結果:
+------------------------------+ | Result | +------------------------------+ | Land of cats or dogs or sand | +------------------------------+
この場合、部分文字列とその置換テキストの前後にスペースを追加しました。
これをしていなかったら、結局これになっていたでしょう:
SELECT REPLACE('Land of cats and dogs and sand', ' and ', ' or ') AS Result;
結果:
+----------------------------+ | Result | +----------------------------+ | Lor of cats or dogs or sor | +----------------------------+