mysql正则式替换问题 10
updatetablesetcontent=replace(content,REGEXP'^[<p].*[>]$','<p>')CONTENT字段里有很多<pxxxxxx...
update table set content=replace(content, REGEXP '^[<p].*[>]$','<p>')
CONTENT字段里有很多<p xxxxxxxxxxxxxxxxxxxxxxxxxxx>我想换成<p>
求语句,谢谢,悬赏了
SELECT replace(content, REGEXP '^[<p].*[>]$','<p>')
FROM table where content REGEXP '^[<p].*[>]$' and id=32 展开
CONTENT字段里有很多<p xxxxxxxxxxxxxxxxxxxxxxxxxxx>我想换成<p>
求语句,谢谢,悬赏了
SELECT replace(content, REGEXP '^[<p].*[>]$','<p>')
FROM table where content REGEXP '^[<p].*[>]$' and id=32 展开
1个回答
展开全部
UPDATE `tablename` SET `content`=replace(`content`, substr(`content`, locate('<p', `content`), locate('>', `content` , locate('<p', `content`))+1-locate('<p', `content`)), '<p>')
更多追问追答
追问
实际content中有多个 你这个语句因为涉及到下标,只能替换到第一个无法全部替换;可能用正则式解决更好一些,非常谢谢,我再看看
追答
你试过没有,不要把它像正则那样考虑,mysql中的replace是贪婪的,而作为它的第二个参数substr也会获取所有满足定位条件的内容,不会只替换第一个的,除非你的content中出现xxx>这种嵌套
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询