SUBSTRING_INDEX函数是 MySQL 中的一个字符串函数,用于截取字符串中的子字符串,并根据指定的分隔符进行分隔。
SUBSTRING_INDEX(str, delimiter, count)
str:要处理的原始字符串。
delimiter:指定的分隔符。
count:要截取的子字符串的数量。如果为正数,表示从左侧开始截取指定数量的子字符串;如果为负数,表示从右侧开始截取指定数量的子字符串;如果为 0表示截取为空字符。
下面是一些使用`SUBSTRING_INDEX`函数的示例:
1. 从左侧开始截取指定数量的子字符串:
mysql> SELECT SUBSTRING_INDEX('www.xuandaima.com', '.', 2);
+----------------------------------------------+
| SUBSTRING_INDEX('www.xuandaima.com', '.', 2) |
+----------------------------------------------+
| www.xuandaima |
+----------------------------------------------+上述示例中,使用点号`.`作为分隔符,从左侧开始截取 2 个组,得到的结果是` www.xuandaima`。
2. 从右侧开始截取指定数量的子字符串:
mysql> SELECT SUBSTRING_INDEX('www.xuandaima.com', '.', -2);
+-----------------------------------------------+
| SUBSTRING_INDEX('www.xuandaima.com', '.', -2) |
+-----------------------------------------------+
| xuandaima.com |
+-----------------------------------------------+上述示例中,使用点号`.`作为分隔符,从右侧开始截取 2 个子字符串,得到的结果是`xuandaima.com`。
3. 截取0个字符串:
mysql> SELECT SUBSTRING_INDEX('www.xuandaima.com', '.', 0);
+----------------------------------------------+
| SUBSTRING_INDEX('www.xuandaima.com', '.', 0) |
+----------------------------------------------+
| |
+----------------------------------------------+上述示例中,使用点号`.`作为分隔符,截取整个字符串,得到的结果是``。
需要注意的是,SUBSTRING_INDEX函数的返回值是截取后的子字符串,如果原始字符串中没有指定数量的子字符串,或者指定的分隔符在原始字符串中不存在,那么函数可能会返回空字符串或者错误。
总的来说,SUBSTRING_INDEX函数是 MySQL 中一个非常有用的字符串函数,可以根据指定的分隔符截取字符串中的子字符串。在使用SUBSTRING_INDEX函数时,需要注意参数的正确性,以及返回值的正确性。