我有這樣的需求:prodcuts_description 表里有很多多余的<br>標簽,并且寫法不一,如:<br />、<br>。要替換掉兩個以上的空行(<br>標簽),我只知道正則大概這么寫:(<br */*>\s*){2,}
1 回答

慕勒3428872
TA貢獻1848條經驗 獲得超6個贊
mysql的正則匹配用regexp,而替換字符串用REPLACE(str,from_str,to_str)
例如UPDATE myTable SET HTML=REPLACE(HTML,'<br>','') WHERE HTML REGEXP '(<br */*>\s*){2,}'
可是這么寫會把所有<br>全部替換掉,因此干脆把REPLACE(HTML,'<br>','')改成REPLACE(HTML,substr(HTML,locate('<br><br>',HTML)+strlen('<br>'),strlen('<br>')),'')
這還不夠,還得手動寫多個'<br><br>'、'<br><br/><br/><br><br><br/>',
還不夠,還得循環數次這些命令。。。。
關鍵的是,SQL語句無法實現正則匹配后取其中一部分的字符串來替換,所以你這里用sql實現是異常蛋疼的,干脆在程序里做正則替換,然后update吧。
添加回答
舉報
0/150
提交
取消