问题:需要将 www.baidu.com 中的‘baidu’替换为 ‘abc’
数据库版本 5.6.16
最开始使用replace方法,一直不生效,只能使用subString_index方法来进行替换
首先学习一下这个方法
substring_index(str,delim,count)
str:要处理的字符串
delim:分隔符
count:计数
例子:str=www.baidu.com
substring_index(str,'.',1)
结果是:www
substring_index(str,'.',2)
结果是:www.baidu
也就是说,如果count是正数,那么就是从左往右数,第N个分隔符的左边的全部内容
相反,如果是负数,那么就是从右边开始数,第N个分隔符右边的所有内容,如:
substring_index(str,'.',-2)
结果为:baidu.com
有人会问,如果我要中间的的baidu怎么办?
很简单的,两个方向:
从右数第二个分隔符的右边全部,再从左数的第一个分隔符的左边:
substring_index(substring_index(str,'.',-2),'.',1);
最终结果
update users set url = concat(subString_index('.baidu.',1),',',subString_index('.baidu.',-1))