我希望编写一个SQL查询来执行以下操作:
选择meta\\u值=不存在的帖子id的所有postmeta行。
例如,postmeta\\u值可能等于235。通常情况下,这与ID为235的帖子(附件)有关,但它已被删除。我想找到任何像这样的Posteta行并删除它们。
希望这有意义!提前谢谢。
编辑:
我刚刚找到NOT EXISTS函数。我有一种感觉,像这样的东西会有用:
SELECT m.*
FROM wp_postmeta m
WHERE m.meta_key = \'image\'
AND NOT EXISTS (SELECT *
FROM wp_posts p
WHERE m.meta_value = p.ID)
这看起来对吗?
最合适的回答,由SO网友:James Kemp 整理而成
当然,在发布这篇文章几分钟后,我就把它解决了。以下工作:
SELECT m.*
FROM wp_postmeta m
WHERE m.meta_key = \'image\'
AND NOT EXISTS (SELECT *
FROM wp_posts p
WHERE m.meta_value = p.ID)