我有多级评论系统,我把评论存储在mysql数据库表中,表中有这样的字段:

id
article_id
user_id
date
content
comment_id

其中comment_id是父comment的id。
如何计算所有文章在某个特定日期后对用户评论的回复数?
例如:
- comment1
-- comment1.1
--- comment1.1.1
-- comment1.2
-- comment1.3
--- comment1.3.1

如果用户发布了comment1,我需要查询返回5。如果用户发布了评论1.3-返回1。

最佳答案

有关一些想法,请参见Managing Hierarchical Data in MySQL。一个简单的方法是将路径存储在上面列出的注释树中,然后执行LIKE查询。例如。:

SELECT COUNT(*) WHERE comment_path LIKE 'comment1.%'

当然,您需要在comment_path列上创建一个索引,只要%只在末尾使用,就可以使用这个索引。

关于php - 计算用户评论的回复数量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5395494/

10-10 06:46