我有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
答案 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相同。