Последнее обновление
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 |
+-----------------------------------------------------------+