Последнее обновление
SUB_REPLACE
Описание
Функция sub_replace используется для замены подстрок в строке. Можно указать подстроку для замены и строку, которая её заменит. Функция возвращает новую строку, в которой подстрока, начинающаяся с позиции start и имеющая длину len в строке str, заменена на new_str. Если start или len является отрицательным целым числом, возвращается NULL. По умолчанию значение len равно длине new_str.
Синтаксис
sub_replace(<str>, <new_str>, [ ,<start> [ , <len> ] ])
Параметры
| Параметр | Описание |
|---|---|
<str> | Строка, в которой выполняется замена |
<new_str> | Строка, которая заменит указанную подстроку |
<start> | start задаёт начальную позицию операции замены, то есть позицию в строке, с которой начинается замена |
<len> | len — необязательный параметр, который задаёт длину заменяемой подстроки |
Возвращаемое значение
Возвращает строку после замены.
Примеры
- Основное использование: замена с указанием позиции и длины
SELECT sub_replace('doris', '***', 1, 2);
+-----------------------------------+
| sub_replace('doris', '***', 1, 2) |
+-----------------------------------+
| d***is |
+-----------------------------------+
- Замена с длиной по умолчанию
SELECT sub_replace('hello', 'Hi', 0);
+--------------------------------+
| sub_replace('hello', 'Hi', 0) |
+--------------------------------+
| Hillo |
+--------------------------------+
- При отрицательном значении параметра возвращается NULL
SELECT sub_replace('hello', 'Hi', -1, 2);
+------------------------------------+
| sub_replace('hello', 'Hi', -1, 2) |
+------------------------------------+
| NULL |
+------------------------------------+
- Обработка значения NULL
SELECT sub_replace(NULL, 'new', 0, 3);
+-------------------------------------+
| sub_replace(NULL, 'new', 0, 3) |
+-------------------------------------+
| NULL |
+-------------------------------------+
- Строка UTF-8
SELECT sub_replace('doris', 'ṛìḍḍ', 1, 2);
+-------------------------------------------+
| sub_replace('doris', 'ṛìḍḍ', 1, 2) |
+-------------------------------------------+
| dṛìḍḍis |
+-------------------------------------------+
- Начальная позиция превышает длину строки
SELECT sub_replace('hello', 'Hi', 9, 2);
+----------------------------------+
| sub_replace('hello', 'Hi', 9, 2) |
+----------------------------------+
| NULL |
+----------------------------------+
- Указанная длина замены превышает длину оставшейся части строки
SELECT sub_replace('hello', 'Hi', 1, 9);
+----------------------------------+
| sub_replace('hello', 'Hi', 1, 9) |
+----------------------------------+
| hHi |
+----------------------------------+
Ключевые слова
SUB_REPLACE, REPLACE