字符串截取之substring_index
substring_index(str,delim,count)
str:要处理的字符串
delim:分隔符
count:计数
substring_index(str,'.',1)
结果是:www
substring_index(str,'.',2)
结果是:www.csdn
也就是说,如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容
相反,如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容,如:
substring_index(str,'.',-2)
结果为:csdn.net
有人会为,如果我呀中间的的csdn怎么办?
很简单的,两个方向:
从右数第二个分隔符的右边全部,再从左数的第一个分隔符的左边:
substring_index(substring_index(str,’.’,-2),‘.’,1);
说一下具体的使用案例:
我在需要对线上数据做修理的时候遇到过这个问题
需要对一段json数据做修理,其中就用到了这个字符串处理的函数
如下:
CONCAT('http',SUBSTRING_INDEX(SUBSTRING_INDEX(cd.result, 'http',-1),'.pdf',1),'.pdf')
mysql的另一个函数 subStr
用法:substr(string string,num start,num length);
string为字符串;start为起始位置;length为长度。
注意:mysql中的start是从1开始的。
aa = www.baidu
例如 subStr(aa,1,locate(’.’,aa))
结果: www.
推荐的的地址
https://baijiahao.baidu.com/s?id=1575352322441637&wfr=spider&for=pc