MariaDB SUBSTRING_INDEX() 函数使用指南

在 MariaDB 中,SUBSTRING_INDEX() 是一个内置的字符串函数,它返回指定分隔符出现指定次数之前的子字符串。

MariaDB SUBSTRING_INDEX() 语法

这里是 MariaDB SUBSTRING_INDEX() 函数的语法:

SUBSTRING_INDEX(str, delim, count)

参数

str
必需的。原字符串。
delim
必需的。在原字符串中搜索的分隔符。
count
必需的。分隔符出现的次数。如果 count 为负数,则从字符串尾部向前开始计数分隔符,返回分隔符之后的子字符串。

如果您不提供参数或提供了错误数量的参数, MariaDB 将报告一个错误:ERROR 1582 (42000): Incorrect parameter count in the call to native function 'SUBSTRING_INDEX'

返回值

MariaDB SUBSTRING_INDEX() 函数返回一个字符串中指定分隔符出现在指定次数之前的子字符串。

如果参数 count 等于 0, SUBSTRING_INDEX() 函数返回一个空字符串 '';

如果参数 count 为负数时, 则从字符串尾部向前开始计数分隔符,返回分隔符之后的子字符串。

如果未找到给定的分隔符,SUBSTRING_INDEX() 函数返回原字符串。

如果任意一个参数为 NULL 时, SUBSTRING_INDEX() 函数将返回 NULL

MariaDB SUBSTRING_INDEX() 示例

基本示例

这个语句展示了 MariaDB SUBSTRING_INDEX() 函数的基本用法:

SELECT SUBSTRING_INDEX('www.mysql.com', '.', 2);

输出:

+------------------------------------------+
| SUBSTRING_INDEX('www.mysql.com', '.', 2) |
+------------------------------------------+
| www.mysql                                |
+------------------------------------------+

负数

如果 count 参数为负数时, SUBSTRING_INDEX() 从字符串尾部向前开始计数分隔符,并返回分隔符之后的子字符串。

SELECT SUBSTRING_INDEX('www.mysql.com', '.', -2);

输出:

+-------------------------------------------+
| SUBSTRING_INDEX('www.mysql.com', '.', -2) |
+-------------------------------------------+
| mysql.com                                 |
+-------------------------------------------+

未找到分隔符

如果未找到给定的分隔符,SUBSTRING_INDEX() 函数返回原字符串。

SELECT SUBSTRING_INDEX('www.mysql.com', '/', 2);

输出:

+------------------------------------------+
| SUBSTRING_INDEX('www.mysql.com', '/', 2) |
+------------------------------------------+
| www.mysql.com                            |
+------------------------------------------+

结论

在 MariaDB 中,SUBSTRING_INDEX() 是一个内置的字符串函数,它返回指定分隔符出现指定次数之前的子字符串。