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

慕勒3428872
TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超6個(gè)贊
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>')),'')
這還不夠,還得手動寫多個(gè)'<br><br>'、'<br><br/><br/><br><br><br/>',
還不夠,還得循環(huán)數(shù)次這些命令。。。。
關(guān)鍵的是,SQL語句無法實(shí)現(xiàn)正則匹配后取其中一部分的字符串來替換,所以你這里用sql實(shí)現(xiàn)是異常蛋疼的,干脆在程序里做正則替換,然后update吧。
添加回答
舉報(bào)
0/150
提交
取消