从wordpress中的帖子中删除类别/标签,但忽略具有以下类别的帖子

时间:2018-02-23 13:47:53

标签: sql wordpress

经典的wordpress结构

wpdb_term_relationships表

的object_id

term_taxonomy_id

我想从所有包含term_taxonomy_id 1424的帖子中删除term_taxonomy_id = 3,但不包括那些也包含term_taxonomy_id 3152的帖子。

查询不起作用:

DELETE FROM wpdb_term_relationships WHERE term_taxonomy_id = 3
WHERE ID IN (
  SELECT object_id 
  FROM wpdb_term_relationships 
  WHERE term_taxonomy_id = 1424
)
AND ID NOT IN (
  SELECT object_id 
  FROM wpdb_term_relationships 
  WHERE term_taxonomy_id = 3152
)

我做错了什么?

1 个答案:

答案 0 :(得分:0)

首先,我希望您在运行任何新查询之前备份数据库,或者在测试数据库而不是现场网站上运行它们。你绝对不应该盲目地相信我们(尤其是我),确切地知道它在你的具体案例中是如何运作的。其次,最好在WordPress标签中建议的WordPress stack exchange中询问,因为那里的人可能会更熟悉经典的WordPress数据库结构。

至于你的代码,看起来更容易将其他条件用于你的第一个 WHERE 语句。

DELETE FROM wpdb_term_relationships 
WHERE term_taxonomy_id = 3
 AND term_taxonomy_id = 1424
 AND term_taxonomy_id <> 3152 --or != 1352
;