1. 评论表设计:

CREATE TABLE `community_comment` (
  `id` varchar(32) NOT NULL COMMENT '主键',
  `article_moment_id` varchar(32) DEFAULT NULL COMMENT '文章动态Id',
  `parent_id` varchar(32) DEFAULT '0' COMMENT '父Id',
  `comment` varchar(500) DEFAULT NULL COMMENT '评论内容',
  `from_user_id` varchar(32) DEFAULT NULL COMMENT '评论用户Id',
  `to_user_id` varchar(32) DEFAULT NULL COMMENT '被回复用户Id',
  `status` char(1) DEFAULT '0' COMMENT '状态(0-正常, 1-删除, 2-禁播)',
  `create_date` datetime DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='评论'

注意:status 状态 字段 2 是禁播,就是禁止播放,管理员 可以在后台操作

2. 向 评论表 insert 一些数据:

INSERT  INTO `community_comment`(`id`,`article_moment_id`,`parent_id`,`comment`,`from_user_id`,`to_user_id`,`status`,`create_date`) VALUES ('1','1','0','1','1','2','0','2020-07-28 09:47:38'),('10','1','0','10','1','2','2','2020-07-29 14:42:12'),('11','1','0','11','1','2','0','2020-07-29 14:42:21'),('2','1','0','2','1','2','0','2020-07-28 14:05:52'),('3','1','1','3','1','2','0','2020-07-28 14:06:08'),('4','1','1','4','1','2','0','2020-07-28 14:08:11'),('5','1','2','5','1','2','0','2020-07-28 14:25:06'),('6','1','0','6','1','2','0','2020-07-28 14:25:51'),('7','1','0','7','1','2','0','2020-07-29 14:41:19'),('8','1','0','8','1','2','0','2020-07-29 14:41:47'),('9','1','0','9','1','2','0','2020-07-29 14:42:00');

3. 查询语句,仅作参考:

--  查询评论列表且同时查出每条一级评论下的"子评论数量"
SELECT * 
FROM 
     (
      SELECT  a.*,
              b.user_name  AS  from_user_name, b.avatar  AS  from_user_face,
              c.user_name  AS  to_user_name,  c.avatar AS to_user_face
      FROM    community_comment a
              LEFT JOIN  sys_user b  ON  a.from_user_id = b.user_id
              LEFT JOIN  sys_user c  ON  a.to_user_id = c.user_id              
      WHERE   a.article_moment_id = '1'        
     )  aa
     LEFT JOIN 
     (
      -- 根据 parent_id (父id) 分组
      SELECT d.parent_id, COUNT(d.parent_id) AS  sub_comment_num
      FROM  (
             -- 根据文章动态id 查询出评论
             SELECT * FROM  community_comment WHERE article_moment_id = '1' 
            )  d 
       GROUP  BY  d.parent_id 
     )  bb
     ON  aa.id  =  bb.parent_id
WHERE      aa.parent_id = '1'  AND  aa.status = '0'    
ORDER BY   bb.sub_comment_num  DESC

 

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐