Mysql替换正则表达式

Mysql替换正则表达式,mysql,regex,replace,Mysql,Regex,Replace,嗨,有没有办法用其他东西“替换”mysql表中出现的10次或10次以上的(下划线)事件 背景 我继承了一个为web编写的内容数据库 不幸的是,原作者使用了\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu 这是wordpress安装,因此内容位于名为wp\u posts的表中 我能够找到与以下查询相关的帖子 SELECT * FROM

嗨,有没有办法用其他东西“替换”mysql表中出现的10次或10次以上的(下划线)事件

背景 我继承了一个为web编写的内容数据库

不幸的是,原作者使用了
\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu

这是wordpress安装,因此内容位于名为
wp\u posts
的表中

我能够找到与以下查询相关的帖子

SELECT *
FROM `wp_posts`
WHERE `post_content` LIKE '%\_\_\_\_\_\_\_\_\_\_%'
更新:

我也可以使用以下方法找到匹配的帖子

SELECT `post_content`
REGEXP '_{10,}'
FROM `wp_posts`
WHERE `post_content` LIKE '%\_\_\_\_\_\_\_\_\_\_%'
LIMIT 0 , 30
但是,如果存在匹配项,则仅返回1,如果没有匹配项,则返回0

有没有办法返回匹配的子字符串?
有没有办法让表达式变得贪婪?

MySQL没有正则表达式替换,但是没有它,您可以做任何事情

可以使用替换精确的字符串:

update `wp_posts` set `post_content` = replace(`post_content`,'__________','<hr />');
update`wp\u posts`set`post\u content`=replace(`post\u content`、''uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu;

由于这是一项一次性工作,我首先会查找用于表示

好的,这很有用,但我担心原作者只是在他们认为合适的时间内按下按钮。我也许可以使用正则表达式来找到这些长度,并将其传递到这个函数中。如果使用regex真的很重要,你可以将它作为一个插件安装在mysql中,检查这里:好的,这对我来说很有效。不过,我必须再做一次,我希望看到一个更干净的解决方案接受“MySQL没有正则表达式替换”的答案,这最终是正确的,可能会帮助大多数人。@Dominic Rodger你编辑的帖子有什么问题?我只是想知道我做错了什么,这样就不会再做了。没什么太严重的(有几个打字错误,你需要在

-你的原始帖子中没有显示)。这里的人们倾向于编辑东西来整理它们——这不一定会对你这个提问者/回答者造成不良影响——这个网站是协作编辑的(请参阅常见问题解答:)