根据另一个的信息更新一个Wordpress SQL表

时间:2011-04-15 22:09:45

标签: sql wordpress

我正在尝试在Wordpress数据库上运行SQL命令。我想更新wp_6_posts表的post-status列中的某些条目,其值为"trash"。我想要更新的条目是表wp_6_term_relationshipsterm_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
)

2 个答案:

答案 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')
相关问题