Перейти к содержимому
Последнее обновление

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 — необязательный параметр, который задаёт длину заменяемой подстроки

Возвращаемое значение​

Возвращает строку после замены.

Примеры​

  1. Основное использование: замена с указанием позиции и длины
SELECT sub_replace('doris', '***', 1, 2);
+-----------------------------------+
| sub_replace('doris', '***', 1, 2) |
+-----------------------------------+
| d***is |
+-----------------------------------+
  1. Замена с длиной по умолчанию
SELECT sub_replace('hello', 'Hi', 0);
+--------------------------------+
| sub_replace('hello', 'Hi', 0) |
+--------------------------------+
| Hillo |
+--------------------------------+
  1. При отрицательном значении параметра возвращается NULL
SELECT sub_replace('hello', 'Hi', -1, 2);
+------------------------------------+
| sub_replace('hello', 'Hi', -1, 2) |
+------------------------------------+
| NULL |
+------------------------------------+
  1. Обработка значения NULL
SELECT sub_replace(NULL, 'new', 0, 3);
+-------------------------------------+
| sub_replace(NULL, 'new', 0, 3) |
+-------------------------------------+
| NULL |
+-------------------------------------+
  1. Строка UTF-8
SELECT sub_replace('doris', 'ṛìḍḍ', 1, 2);
+-------------------------------------------+
| sub_replace('doris', 'ṛìḍḍ', 1, 2) |
+-------------------------------------------+
| dṛìḍḍis |
+-------------------------------------------+
  1. Начальная позиция превышает длину строки
SELECT sub_replace('hello', 'Hi', 9, 2);
+----------------------------------+
| sub_replace('hello', 'Hi', 9, 2) |
+----------------------------------+
| NULL |
+----------------------------------+
  1. Указанная длина замены превышает длину оставшейся части строки
SELECT sub_replace('hello', 'Hi', 1, 9);
+----------------------------------+
| sub_replace('hello', 'Hi', 1, 9) |
+----------------------------------+
| hHi |
+----------------------------------+

Ключевые слова​

SUB_REPLACE, REPLACE