substring_index
Описание
Извлекает подстроку, которая предшествует или следует за count вхождениями разделителя.
-
Если
countположительное, подсчет начинается с начала строки, и эта функция возвращает подстроку, которая предшествуетcount-му разделителю. Например,select substring_index('https://www.selena.io', '.', 2);возвращает подстроку перед вторым разделителем., которая равнаhttps://www.selena. -
Если
countотрицательное, подсчет начинается с конца строки, и эта функция возвращает подстроку, которая следует заcount-м разделителем. Например,select substring_index('https://www.selena.io', '.', -2);возвращает подстроку после второго разделителя., которая равнаselena.io.
Если любой входной параметр равен null, возвращается NULL.
Эта функция поддерживается начиная с версии 1.5.0.
Синтаксис
VARCHAR substring_index(VARCHAR str, VARCHAR delimiter, INT count)
Параметры
str: обязательный, строка, которую вы хотите разделить.delimiter: обязательный, разделитель, используемый для разделения строки.count: обязательный, позиция разделителя. Значение не может быть 0. В противном случае возвращается NULL. Если значение больше фактического количества разделителей в строке, возвращается вся строка.
Возвращаемое значение
Возвращает значение VARCHAR.
Примеры
-- Возвращает подстроку, которая предшествует второму разделителю ".".
mysql> select substring_index('https://www.selena.io', '.', 2);
+-----------------------------------------------------+
| substring_index('https://www.selena.io', '.', 2) |
+-----------------------------------------------------+
| https://www.selena |
+-----------------------------------------------------+
-- Count отрицательное.
mysql> select substring_index('https://www.selena.io', '.', -2);
+------------------------------------------------------+
| substring_index('https://www.selena.io', '.', -2) |
+------------------------------------------------------+
| selena.io |
+------------------------------------------------------+
mysql> select substring_index("hello world", " ", 1);
+----------------------------------------+
| substring_index("hello world", " ", 1) |
+----------------------------------------+
| hello |
+----------------------------------------+
mysql> select substring_index("hello world", " ", -1);
+-----------------------------------------+
| substring_index('hello world', ' ', -1) |
+-----------------------------------------+
| world |
+-----------------------------------------+
-- Count равен 0 и возвращается NULL.
mysql> select substring_index("hello world", " ", 0);
+----------------------------------------+
| substring_index('hello world', ' ', 0) |
+----------------------------------------+
| NULL |
+----------------------------------------+
-- Count больше количества пробелов в строке и возвращается вся строка.
mysql> select substring_index("hello world", " ", 2);
+----------------------------------------+
| substring_index("hello world", " ", 2) |
+----------------------------------------+
| hello world |
+----------------------------------------+
-- Count больше количества пробелов в строке и возвращается вся строка.
mysql> select substring_index("hello world", " ", -2);
+-----------------------------------------+
| substring_index("hello world", " ", -2) |
+-----------------------------------------+
| hello world |
+-----------------------------------------+
keyword
substring_index