我有多级评论系统,我把评论存储在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/