我正在使用phpmyadmin
在帖子的每个标题中都包含“In x”(x是1到1000范围内的数字)
示例:
In 434 Hello everybody ----> remove "In 434" -----> Hello everybody
In 62 Hi everybody ----> remove "In 62" ------> Hi everybody
In 2 I am newmember ----> remove "in 2" ------> I am newmember
如何使用sql查询删除“In x”?
这是我的代码
SELECT wp_posts.post_title FROM wp_posts Where wp_posts.post_status = 'publish'
$result = preg_replace('/In \d+ /','',$title);
UPDATE wp_post SET post_content = $result
但是说错误
“#1064 - 您的SQL语法出错;请查看手册 对应于您的MySQL服务器版本,以便使用正确的语法 在第2行'$ result = preg_replace('/ In \ d + /','',$ title)'附近“
非常感谢!抱歉我的英语不好!
答案 0 :(得分:0)
您正在尝试在MySQL服务器上执行PHP代码(preg_replace()
行)。这不起作用,并且MySQL的查询语言不够强大,无法执行任何模式替换,例如此类。您需要编写将运行SELECT查询的PHP代码,然后对于返回的每一行,将preg_replace()
函数应用于'title'字段并运行UPDATE查询以在数据库中应用更改。
有很多很多关于如何编写与MySQL数据库交互的PHP代码的例子,但为什么不使用Wordpress API来节省大量的工作呢? get_posts()
和wp_update_post()
是一个很好的起点; the Wordpress function reference通常也可能对您有用,尤其是“入门”部分。