使用一个SQL查询删除postmeta和帖子

时间:2014-09-12 09:07:09

标签: php mysql sql wordpress

我有2个SQL查询用于从我的Wordpress数据库中删除帖子和元数据。我可以按顺序运行这些查询,但我想在一次完成整个工作时进行1次查询。

按元键和值删除帖子:

DELETE wp_posts FROM wp_posts
INNER JOIN wp_postmeta ON wp_postmeta.post_id = wp_posts.ID
WHERE (wp_postmeta.meta_key = 'vimport_key' AND wp_postmeta.meta_value = 'some value');

此查询会从wp_postmeta中删除与帖子不匹配的行。

DELETE pm
FROM wp_postmeta pm
LEFT JOIN wp_posts wp ON wp.ID = pm.post_id
WHERE wp.ID IS NULL

1 个答案:

答案 0 :(得分:1)

查看级联选项或执行此操作...

DELETE p, pm
  FROM wp_posts p
 INNER 
  JOIN wp_postmeta pm
    ON pm.post_id = p.ID
 WHERE pm.meta_key = 'vimport_key' 
   AND pm.meta_value = 'some value';

请注意,按照惯例,我们通常以相反的方式写这个,这样WHERE子句引用第一个表,但它在逻辑上(和表演性地)相同 - 就像a * b一样与b * a相同。