我们有一个使用wordpress的网站,我们发现在某些时候,一个糟糕的插件或用户错误在siteurl之后添加了两个斜杠(例如,http://example.site//category1/或http:// example. site / category1 // category2 /等
这似乎有效,但看起来效果不够.
SELECT id,post_content FROM `wp_posts` where post_content regexp '(href="[^"]*[^:]\/\/[^"]*)' and post_status in('draft','publish') order by id asc
有一个更好的方法吗?我不希望它在http:之后的双斜杠上匹配,因此在:的负匹配.
编辑:为了澄清,我想找到所有帖子(wordpress帖子/页面的正文)有一个硬编码到具有双斜线的页面的URL,但在http:.之后的双斜杠上不匹配.
Regexp应匹配以下内容:
http://example.site//category1/或http://example.site/category1//category2/或甚至http://example.site/category1/category2//或example.site/category1//category2/
但不应该匹配以下内容:
http://example.site/category1/或http://example.site/category1/category2/
解决方法
也许这样的事情会起作用.
SELECT * FROM wp_posts WHERE CASE WHEN instr(post_content,'http://') > 0 THEN substring(post_content,7) regexp '\/\/' ELSE post_content regexp '\/\/' END
这是SQL Fiddle.
祝好运.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。