mysql数据库聊天表设置与聊天记录查询

本文介绍了一种使用SQL查询特定用户最新聊天记录的方法,通过子查询和条件筛选,确保获取到每个对话的最后一条消息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、功能场景

需求展示查询出好友给我发的最近一条信息
在这里插入图片描述

二、数据库设置

在这里插入图片描述

  • id:主键id
  • send_user_id:发送人id
  • receive_user_id:接收人id
  • content:发送内容
  • send_time:发送时间

三、代码实现

需求:查询用户id为1的所有的并且最新的聊天信息

一、未查询前的所有数据:
在这里插入图片描述
二、sql:

SELECT
	* 
FROM
	(
	SELECT
		* 
	FROM
		fa_hx_chat_content 
	WHERE
		send_time IN (
		SELECT
			MAX( send_time ) 
		FROM
			fa_hx_chat_content 
		WHERE
			receive_user_id = 1 
			OR send_user_id = 1 
		GROUP BY
			CONCAT(
			IF
				( send_user_id > receive_user_id, send_user_id, receive_user_id ),
			IF
			( send_user_id < receive_user_id, send_user_id, receive_user_id ))) 
		AND ( receive_user_id = 1 OR send_user_id = 1 ) 
	ORDER BY
		id DESC 
	) c 
ORDER BY
	c.send_time DESC

三、查询后的数据:
在这里插入图片描述

评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值