首页 > 解决方案 > MYSQL查询:获取按数据分组的最新日期

问题描述

我有一张桌子可以聊天。


消息 I senderID I recipentID I date

我想通过对话查询最新消息组。(例如,如果'senderID = 1 和 recipentID = 2'与'senderID = 2 和 recipentID = 1 '是相同的对话)

标签: mysqlsql

解决方案


您可以使用in. MySQL 支持带有 的元组in,所以这里有一种方法:

select c.*
from chats c
where (least(senderID, recipentID), greatest(senderID, recipentID), date) in
       (select least(senderID, recipentID), greatest(senderID, recipentID), max(date)
        from chats c
        group by least(senderID, recipentID), greatest(senderID, recipentID)
       );

推荐阅读