MySQL的SUBSTRING_INDEX()函数用于提取一个字符串中指定分隔符出现次数的子字符串。其函数原型为:
SUBSTRING_INDEX(str, delim, count)
其中,str表示需要处理的原始字符串,delim为指定的分隔符,count表示需要提取的子字符串在分隔符出现次数的位置。如果count为正数,则表示从左往右数第count个分隔符之前的所有子字符串;如果count为负数,则表示从右往左数第count个分隔符之后的所有子字符串。
以下是一个从左往右提取子字符串的例子:
SELECT SUBSTRING_INDEX('www.example.com', '.', 2);
上面的SQL语句会将字符串'www.example.com'以'.'为分隔符,提取出第1个和第2个分隔符之间的子字符串,即'www.example'。
以下是一个从右往左提取子字符串的例子:
SELECT SUBSTRING_INDEX('www.example.com', '.', -2);
上面的SQL语句会将字符串'www.example.com'以'.'为分隔符,提取出倒数第1个(也就是最右边的)分隔符之后的子字符串,即'com'。
另一个实用的例子是从Email地址中提取用户名部分:
SELECT SUBSTRING_INDEX('abc@example.com', '@', 1);
上面的SQL语句会将字符串'abc@example.com'以'@'为分隔符,提取出'@'之前的子字符串,即'abc'。
需要注意的是,如果指定的分隔符不存在于原始字符串中,则函数会返回整个原始字符串。
本文链接:http://task.lmcjl.com/news/18352.html