我有这么一段字符串:
2,3,13,5,17,20,7,15,10,现在我想删除“7,”,一开始觉得用LOCATE函数把“7,”的位置取出来,然后用LEFT函数删除就行了,但是后来我发现还有个“17,”,这样的话用LOCATE函数就不能找对位置了,于是我想到用正则把要删除的内容匹配出来得到位置,然后用LEFT去删掉它,可是用正则怎么做到得到匹配值的位置呢?求高人解答。这个是我想到的一种删除子字符串的办法,不知道还有没有别的更好的办法,希望大家指点。
2,3,13,5,17,20,7,15,10,现在我想删除“7,”,一开始觉得用LOCATE函数把“7,”的位置取出来,然后用LEFT函数删除就行了,但是后来我发现还有个“17,”,这样的话用LOCATE函数就不能找对位置了,于是我想到用正则把要删除的内容匹配出来得到位置,然后用LEFT去删掉它,可是用正则怎么做到得到匹配值的位置呢?求高人解答。这个是我想到的一种删除子字符串的办法,不知道还有没有别的更好的办法,希望大家指点。
一段字符串='2,3,13,5,17,20,7,15,10,';
select mid(replace(concat(',',一段字符串),',7,',','),2);
请解释一下mid的意思,另外如果用concat在替换之前都往字符串前面加上一个逗号的话,那多次操作的话,前面岂不是会有很多逗号啊?
对的。ACMAIN_CHM给出了不错的办法,虽然我还没有试,不过大概看了一下应该能解决问题,不知道你有什么高见?