gpt4 book ai didi

MySQL Select - 帮助从 2 列中选择最新行

转载 作者:行者123 更新时间:2023-11-30 01:00:33 25 4
gpt4 key购买 nike

我有下表存储用户之间的消息:

enter image description here

我需要显示用户的所有最后一条消息的列表(来自所有与之联系过的用户)。

例如,您将看到用户为 1000000002 和 1000000172。我需要显示它们之间的最后一条消息,可能是第 1 行到第 4 行 - 但和上次一样是第 4 行。

我已经尝试了下面的查询,但它仍然不正确:

SELECT sender_userid,receiver_userid,message,message_read,`datetime` FROM messages 
WHERE (receiver_userid='1000000172' OR sender_userid='1000000172') AND friendship_status=1 AND receiver_history=1
GROUP BY receiver_userid
ORDER BY `datetime` ASC;

我发现 order by 没有得到最多的重新发送 - 可能是因为它在 Group By 之后。

还发现它将 sender_userid 和receiver_userid 视为分组依据中的不同行。我不确定如何从两者中获得最大的反感。

非常感谢

最佳答案

你的 GROUP BY 应该会抛出错误,但 MySQL 只会给你垃圾:)

您甚至不需要分组依据,您只需要一个涉及用户 X 的所有消息的列表,并且您想要对它们进行排序,因此您已经准备好了大部分工作:

SELECT *
FROM messages
WHERE (receiver_userid='1000000172' OR sender_userid='1000000172')
AND friendship_status=1 AND receiver_history=1
ORDER BY `datetime` DESC;

请注意,如果您希望首先排列最新的内容,则需要按降序排序!

关于MySQL Select - 帮助从 2 列中选择最新行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20172980/

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