You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MySQL如何匹配收发两列查询指定用户的最新聊天记录

实现方案

你要的获取指定用户最新一条聊天记录的MySQL代码如下,直接过滤双列匹配用户后排序取第一条即可:

-- 替换语句中的1为你要查询的目标用户ID,chat_records替换为你的实际表名
SELECT * 
FROM chat_records
WHERE id_user_to = 1 OR id_user_from = 1
ORDER BY `timestamp` DESC, id DESC
LIMIT 1;

逻辑说明

  • WHERE条件直接匹配目标用户作为消息接收方id_user_to或者发送方id_user_from的所有记录
  • 先按时间戳timestamp倒序排列,最新的记录排在最前;如果存在多条时间戳完全相同的记录,再按自增主键id倒序,保证取到生成时间最晚的那条
  • 最后用LIMIT 1仅返回第一条结果,就是你要的最新聊天记录

原写法问题说明

你之前的写法里子查询GROUP BY code没有匹配的业务字段支撑,也没有加上双列匹配用户的过滤条件,所以无法适配当前场景。如果是需要查询目标用户和每个好友的最新聊天记录,才需要用到分组逻辑,仅取全局最新一条用上述写法即可,性能也更高。

内容的提问来源于stack exchange,提问作者Gae

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.01 01:36:05