Php MySQL-按不同标准对帖子/评论进行排序和分组
我有一个SQL语句,它按照发布的时间顺序对评论进行排序,并对父评论的子回复进行分组Php MySQL-按不同标准对帖子/评论进行排序和分组,php,mysql,sql,Php,Mysql,Sql,我有一个SQL语句,它按照发布的时间顺序对评论进行排序,并对父评论的子回复进行分组 |- Comment 1 (Oldest) |- Sub Comment (Sub Oldest) |- Sub Comment |- Sub Comment (Sub Newest) |- Comment 2 (Newest) 查询如下 SELECT * FROM feed_comments c WHERE c.feed = 50 GROUP BY c.
|- Comment 1 (Oldest)
|- Sub Comment (Sub Oldest)
|- Sub Comment
|- Sub Comment (Sub Newest)
|- Comment 2 (Newest)
查询如下
SELECT
*
FROM feed_comments c
WHERE c.feed = 50
GROUP BY c.id
ORDER BY
IF(c.parent_id IS NULL, c.id, parent_id),
c.time ASC
我想修改查询,以同样的方式对注释进行分组,但是我希望主注释从最新到最旧,并保持子回复从最旧到最新
|- Comment 1 (Newest)
|- Sub Comment (Sub Oldest)
|- Sub Comment
|- Sub Comment (Sub Newest)
|- Comment 2 (Oldest)
我一直在玩弄许多不同的IF和CASE语句组合,但似乎找不到正确的解决方案 您的查询没有引用日期/时间列,因此我不得不猜测您如何表示“最新”。让我猜这指的是更大的ID 还可以使用
coalesce()
简化表达式
嗨,c.time中有一个UNIX时间戳,它是post时间
SELECT c.*
FROM feed_comments c
WHERE c.feed = 50
GROUP BY c.id
ORDER BY coalesce(c.parent_id, c.id) desc,
c.time ASC