我有一个wordpress网站,其中有一些meta_key符合我的帖子。我想删除mysql中具有meta_key
值acest_meta
的所有帖子。使用此SQL命令:
SELECT `post_id`
FROM `wp_postmeta`
WHERE `meta_key`
LIKE 'acest_meta'
ORDER BY `wp_postmeta`.`post_id` ASC
我可以看到包含给定meta_key的所有id,但我没有删除复选框neer。我在顶部看到一条消息,说“当前选择不包含唯一列。网格编辑,复选框,编辑,复制和删除功能不可用。”如何删除所有这些帖子?
答案 0 :(得分:3)
您可以使用IN()语句将select删除,并将select放入IN中,如此
DELETE FROM `wp_postmeta`
WHERE `post_id` IN
( SELECT `post_id`
FROM `wp_postmeta`
WHERE `meta_key` LIKE 'acest_meta'
)
答案 1 :(得分:2)
使用Mysql查询可以在删除查询中使用join
DELETE p.*,w.*
FROM `wp_postmeta` w
JOIN wp_posts p
ON(p.ID = w.`post_id`)
WHERE w.`meta_key` LIKE 'acest_meta'
以上查询将删除所有帖子,其元数据包含meta_key为acest_meta
答案 2 :(得分:1)
delete from wp_postmeta
where post_id in
(SELECT post_id FROM wp_postmeta WHERE meta_key = 'acest_meta')