我有一个wordpress网站,在我的帖子中,有很多内容包括http://web.archive.org/web/[0-9]+/
我已经运行了以下查询:
SELECT id,post_title,post_content
FROM wp_posts
WHERE post_content REGEXP 'http://web.archive.org/web/[0-9]+/'
但是,我的问题不是选择,而是替换,如你所知,替换不能直接使用RegEx。
那么如何在我的所有帖子中将所有http://web.archive.org/web/[0-9]+/
替换为空?
应该是
update wp_posts set post_content = replace(post_content, "http://web.archive.org/web/[0-9]+/", "")
答案 0 :(得分:0)
无论如何,我用php
完成了它 while($row = mysql_fetch_assoc($result))
{
//$data[] = $row;
$pattern = "/http\:\/\/web\.archive\.org\/web\/[^\/]+\/http\:/i";
$post_content = preg_replace($pattern, 'http:', $row['post_content']);
echo mysql_query("UPDATE `wp_posts` SET `post_content` = '".mysql_real_escape_string($post_content)."' WHERE ID = ".$row['ID']) ? $row['ID'].'<br>' : '<font color=red>'.$row['ID'].'</font><br>';
}
答案 1 :(得分:-1)
如果SELECT工作,那么这个简单的修改也应该起作用
UPDATE wp_posts
SETS post_content = ''
WHERE post_content REGEXP 'http://web.archive.org/web/[0-9]+/'