gpt4 book ai didi

mysql - 按用户分组并显示最新的 MYSQL 不起作用

转载 作者:太空宇宙 更新时间:2023-11-03 11:08:01 25 4
gpt4 key购买 nike

我有一个正在编写代码的社交网络,但它与其他网络有点不同,在这种情况下,Feed 部分上每个用户只会显示一个状态。

所以我需要按日期对状态进行排序,最新的排在最前面,但也要按用户 ID 分组不幸的是,我似乎无法正常工作....

这是我当前的查询:

SELECT *
FROM status
WHERE userID != "83" #This is just so my statuses don't show
GROUP BY userID
ORDER BY addedDate DESC
LIMIT 10

我希望看到最新的状态结果,但每个用户只能看到一个状态,而我看到的是第一个状态,因此分组依据有效但排序依据无效。

提前致谢。

最佳答案

如对 Robin's answer 的评论中所述, 这种方法是不可靠的,因为 MySQL 不保证它总是返回每个组的最新状态。您必须使用选择最新状态(基于 addedDate)的子查询来连接您的表。

SELECT   *
FROM status
NATURAL JOIN (
SELECT userID, MAX(addedDate) as addedDate
FROM status
GROUP BY userID
) AS mostRecent
ORDER BY addedDate DESC
LIMIT 10

请注意,如果用户有多个具有相同 addedDate 的状态更新,服务器将返回所有这些(而 Robin 的查询将返回一个不确定的);如果您需要控制这种情况,则需要定义如何确定应选择哪种状态更新。

关于mysql - 按用户分组并显示最新的 MYSQL 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10550386/

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