REPLACE
説明
REPLACE関数は、文字列内の指定された部分文字列のすべての出現箇所を新しい部分文字列で置換するために使用されます。この関数は文字列内の部分文字列の一致するすべてのインスタンスを置換し、グローバル置換操作を実行します。
REPLACE_EMPTY関数との違い:
REPLACE()は空文字列を含む指定された部分文字列を置換しますREPLACE_EMPTY()は空の値または空文字列を指定された値で置換するために特別に使用されます
構文
REPLACE(<str>, <old>, <new>)
パラメータ
| Parameter | デスクリプション |
|---|---|
<str> | 置換が実行される元の文字列。型: VARCHAR |
<old> | 置換対象の部分文字列。strに見つからない場合、置換は行われません。型: VARCHAR |
<new> | oldを置き換えるために使用される新しい部分文字列。型: VARCHAR |
Return Value
置換後の新しい文字列を表すVARCHAR型を返します。
置換ルール:
- 文字列内のマッチするoldの部分文字列をすべて置換します
- 置換は大文字小文字を区別します
- oldが空文字列の場合、元の文字列を返します(操作は実行されません)
- newが空文字列の場合、マッチするoldの部分文字列をすべて効果的に削除します
特殊なケース:
- いずれかのパラメータがNULLの場合、NULLを返します
- strが空文字列の場合、空文字列を返します
- oldが空文字列の場合、元のstrを返します(置換なし)
- oldがstrに見つからない場合、元のstrを返します
Examples
- 基本的な置換操作
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 |
+-----------------------------------------------------------+