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
展开
 我来答
奥丁神王
2015-01-28 · TA获得超过357个赞
知道小有建树答主
回答量:331
采纳率:100%
帮助的人:393万
展开全部
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>这种嵌套
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式