に最終更新
REPLACE
説明
REPLACE 関数は、文字列内にある指定した部分文字列のすべての出現箇所を、新しい部分文字列に置き換えます。一致する部分文字列をすべて置換します。
REPLACE_EMPTY 関数との違い:
REPLACE()は、空文字列を含む指定した部分文字列を置換しますREPLACE_EMPTY()は、空の値または空文字列を指定した値に置き換えるために使用します
構文
REPLACE(<str>, <old>, <new>)
パラメータ
| パラメータ | 説明 |
|---|---|
<str> | 置換対象の文字列。型:VARCHAR |
<old> | 置換する部分文字列。str に見つからない場合、置換は行われません。型:VARCHAR |
<new> | old の代わりに使用する新しい部分文字列。型:VARCHAR |
戻り値
置換後の文字列を VARCHAR 型で返します。
置換の規則:
- 文字列内で old に一致する部分文字列をすべて置換します
- 大文字と小文字を区別します
- old が空文字列の場合、元の文字列を返します(置換は行われません)
- new が空文字列の場合、old に一致する部分文字列をすべて削除します
特殊なケース:
- いずれかのパラメータが NULL の場合、NULL を返します
- str が空文字列の場合、空文字列を返します
- old が空文字列の場合、元の str を返します(置換は行われません)
- old が str に見つからない場合、元の str を返します
例
- 基本的な置換
SELECT REPLACE('hello world', 'world', 'universe');
+---------------------------------------------+
| REPLACE('hello world', 'world', 'universe') |
+---------------------------------------------+
| hello universe |
+---------------------------------------------+
- 複数箇所の置換
SELECT REPLACE('apple apple apple', 'apple', 'orange');
+------------------------------------------------+
| REPLACE('apple apple apple', 'apple', 'orange') |
+------------------------------------------------+
| orange orange orange |
+------------------------------------------------+
- 部分文字列の削除(空文字列に置換)
SELECT REPLACE('banana', 'a', '');
+---------------------------+
| REPLACE('banana', 'a', '') |
+---------------------------+
| bnn |
+---------------------------+
- NULL 値の処理
SELECT REPLACE(NULL, 'old', 'new'), REPLACE('test', NULL, 'new'), REPLACE('test', 'old', NULL);
+------------------------------+------------------------------+------------------------------+
| REPLACE(NULL, 'old', 'new') | REPLACE('test', NULL, 'new') | REPLACE('test', 'old', NULL) |
+------------------------------+------------------------------+------------------------------+
| NULL | NULL | NULL |
+------------------------------+------------------------------+------------------------------+
- UTF-8 文字の置換
SELECT REPLACE('ṭṛì ḍḍumai test ṭṛì ḍḍumannàri', 'ṭṛì', 'replaced');
+-----------------------------------------------------------+
| REPLACE('ṭṛì ḍḍumai test ṭṛì ḍḍumannàri', 'ṭṛì', 'replaced') |
+-----------------------------------------------------------+
| replaced ḍḍumai test replaced ḍḍumannàri |
+-----------------------------------------------------------+