我正在尝试在Wordpress数据库上运行SQL命令。我想更新wp_6_posts表的post-status
列中的某些条目,其值为"trash"
。我想要更新的条目是表wp_6_term_relationships
中term_taxonomy_id = 13
。
然后,对于所有这些匹配,我想采用object_id from wp_6_term
关系并将其与ID
中的wp_6_posts
列匹配。
然后我想只更新wp_6_posts
值与ID
表中object_id
值匹配的wp_6_terms_relationships
行。
这是我最接近的,但它只是将post_status
中所有帖子的wp_6_posts
值设置为"trash"
。我知道我只有语法或一些逻辑关闭。
UPDATE wp_6_posts
SET post_status = "trash"
WHERE EXISTS
( SELECT object_id
FROM wp_6_term_relationships
WHERE term_taxonomy_id = "13"
AND object_id = ID
)
答案 0 :(得分:1)
UPDATE wp_6_posts
SET post_status = "trash"
WHERE id IN
( SELECT object_id
FROM wp_6_term_relationships
WHERE term_taxonomy_id = "13"
)
答案 1 :(得分:0)
这个答案对我有用,由更好的SQL人员给我。此查询使用类别slug而不是类别ID#。我完全不理解它,但它有效 - 它给所有类别的帖子“卖”了“垃圾”的post_status。
update wp_posts set post_status = 'trash'
where `id` in
(SELECT object_id
FROM wp_term_relationships wtr
JOIN wp_term_taxonomy wtt ON ( wtr.term_taxonomy_id = wtt.term_taxonomy_id )
JOIN wp_terms wt ON ( wtt.term_id = wt.term_id )
WHERE wtt.taxonomy = 'category'
AND wt.slug = 'sold')