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函数时,需要注意参数的正确性,以及返回值的正确性。