MySql如何获取要在聊天对话列表中显示的记录

Vin*_*ins 2 mysql sql

我有单个聊天表,如图所示.我想像facebook风格一样对聊天列表进行分组.选择用户2的会话后的表格

这里用户2登录并使用选择他的对话

SELECT * 
FROM  `chat`  `t` 
WHERE  `from` =2
OR  `to` =2
ORDER BY sent DESC
Run Code Online (Sandbox Code Playgroud)

但在这里,我想要2和任何其他用户之间的最新单一条目.其中2可以来自或来自列.作为最终结果,它应该分别返回id为25和17的2个条目.

小智 5

SELECT * , (
r.from + r.to
) AS dist
FROM (

SELECT * 
FROM  `cometchat` t
WHERE (
t.from =2
OR t.to =2
)
ORDER BY t.sent DESC
)r
GROUP BY dist
ORDER BY r.sent DESC
Run Code Online (Sandbox Code Playgroud)