MySQL如何实现正则查找替换?
1个回答
展开全部
mysql的正则匹配用regexp,而替换字符串用REPLACE(str,from_str,to_str)例如UPDATE myTable SET HTML=REPLACE(HTML,'','') WHERE HTML REGEXP '( */*\s*){2,}'
可是这么写会把所有全部替换掉,因此干脆把REPLACE(HTML,'','')改成REPLACE(HTML,substr(HTML,locate('',HTML)+strlen(''),strlen('')),'')
这还不够,还得手动写多个''、'///',
还不够,还得循环数次这些命令。。。。
关键的是,SQL语句无法实现正则匹配后取其中一部分的字符串来替换,所以你这里用sql实现是异常蛋疼的,干脆在程序里做正则替换,然后update吧。
可是这么写会把所有全部替换掉,因此干脆把REPLACE(HTML,'','')改成REPLACE(HTML,substr(HTML,locate('',HTML)+strlen(''),strlen('')),'')
这还不够,还得手动写多个''、'///',
还不够,还得循环数次这些命令。。。。
关键的是,SQL语句无法实现正则匹配后取其中一部分的字符串来替换,所以你这里用sql实现是异常蛋疼的,干脆在程序里做正则替换,然后update吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询