经典的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
)
我做错了什么?
答案 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
;