如何删除WordPress数据库中某个类别的所有评论?

时间:2013-01-06 作者:Tim008

我正在试图删除Wordpress数据库中某个类别中帖子的所有评论。

Wordpress数据库相当复杂,因此这可能是wp_posts, wp_commentswp_term_relationships 因为类别存储时既没有帖子也没有评论。

我该怎么做?我很难提出一个问题。

2 个回复
最合适的回答,由SO网友:user1636130 整理而成

wordpress数据库似乎相当直截了当,并且有非常好的文档记录:

http://codex.wordpress.org/Database_Description

在我看来,所有类别信息都存储在表中wp_term_relationships. 因此,您应该从comments表中进行选择,将其与posts表连接,然后再与term\\u relationships表连接,以获取每个评论的类别。

类似于:

SELECT *
FROM wp_comments
WHERE comment_post_ID
IN (

SELECT c.object_id
FROM wp_terms a, wp_term_taxonomy b, wp_term_relationships c
WHERE a.name = \'my_category_slug\'
AND b.term_id = a.term_id
AND b.taxonomy = \'category\'
AND c.term_taxonomy_id = b.term_taxonomy_id
)

SO网友:bonCodigo

我可以为您提供delete 来自的命令join 表格。然后您需要添加相关的表和列

-- using LEFT JOIN

DELETE  x.*
FROM    table1 AS x 
LEFT JOIN
        table2 AS y 
ON      y.id = x.id

-- using IN:

DELETE  
FROM    table1 AS x
WHERE   id IN
        (
        SELECT  id
        FROM    table2
        )
通常情况下left join 快于in. 看看这个ERD, 你最好小心foreign key 关系如果delete on cascade 未实现。

结束

相关推荐

如何使用从wp_Comments(SQL GROUP BY)返回的评论计数来更新wp_post

我正在做一个从某人的定制CMS到WP安装的特殊迁移。我成功地将帖子和评论迁移到各自的表中。现在,我需要将每个匹配id的评论计数放入wp\\u posts表中。我很接近,我想:SELECT COUNT(comment_content) AS total_comments, comment_post_ID AS commentID FROM wp_comments GROUP BY comment_post_ID; --mysql won\'t let me run the group