Mysql删除所有具有给定meta_key的帖子

时间:2014-08-23 22:44:45

标签: mysql sql wordpress

我有一个wordpress网站,其中有一些meta_key符合我的帖子。我想删除mysql中具有meta_keyacest_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。我在顶部看到一条消息,说“当前选择不包含唯一列。网格编辑,复选框,编辑,复制和删除功能不可用。”如何删除所有这些帖子?

3 个答案:

答案 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')