mysql使用replace实现类正则替换

以下方法有局限性,所以当一个思路和兴趣了解一下就够了,正确的处理办法是把数据取出来处理完成后再更新,mysql语句并不能使用正则进行替换

UPDATE test set test.data=REPLACE (test.data,SUBSTR(test.data,LOCATE("{",test.data),LOCATE("}",test.data)),"") where 1=1

可以实现将{}之中的值替换为空
例子:data字段里面的数据为

[{"key1":"value1"},{"key2":"value2"}]

那么执行该语句之后data被修改为:

[{"key2":"value2"}]

函数解释:

LOCATE(substr,str) //返回在substr字符串中str第一次出现的位置
SUBSTR(str,pos,len) //返回str字符串中的从第pos位置开始的len个长度字符串。
REPLACE(str1, str2, str3) //将所有str1字符串中出现的str2替换为str3

你可能感兴趣的:(mysql)