gpt4 book ai didi

php - MySQL GROUP BY 和 ORDER BY 问题

转载 作者:行者123 更新时间:2023-11-29 02:36:15 25 4
gpt4 key购买 nike

我有一个消息传递系统,需要正确排序。创建帖子时,它会自动分配一个线程 ID(无论它属于哪个线程)。

我目前将帖子分组在他们的线程 ID 下,如下所示:

   SELECT 
*
FROM
`Posts`
INNER JOIN
`Profiles`
ON
`Profiles`.`ID` = `Posts`.`Sender`
GROUP BY
`Posts`.`ThreadID`
ORDER BY
`Posts`.`ID` DESC

我想要发生的是让最近更新的线程首先显示在列表中。因此,假设刚刚发布了线程 C 的帖子,线程 C 将首先显示(在线程 A 或线程 B 之前)。我不知道要为 ORDER BY 添加什么内容。

有人知道这是否可能吗?

最佳答案

SELECT *
FROM `Posts` INNER JOIN `Profiles` ON
`Profiles`.`ID` = `Posts`.`Sender`
GROUP BY
`Posts`.`Thread`
ORDER BY
MAX(`Posts`.`ID`) DESC

已更新:如果您想获取每个主题的所有帖子并在顶部显示最新的主题:

SELECT p.*, pf.*
FROM Posts p JOIN `Profiles` pf ON pf.ID = p.Sender
JOIN (
SELECT Thread, MAX(ID) MaxPost
FROM Posts
GROUP BY Thread) po ON p.Thread = po.Thread
ORDER BY po.MaxPost DESC, p.ID DESC

关于php - MySQL GROUP BY 和 ORDER BY 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4710318/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com