mysql5.7没有开窗函数解决方法
mysql5.7没有开窗函数解决方法
·
查询消息列表,例如,查询某人的所有好友给他发送的最近的一条消息
消息列表如下图:
SELECT * FROM
(
SELECT
-- 条件判断,同类型序号加1 ,不同类型,重新赋值
CASE WHEN @to_id_t != CONCAT(t.from_id,t.to_id) THEN @row_num_t:=1
ELSE @row_num_t:= @row_num_t + 1
END as row_sort,
-- 变量赋值
@to_id_t :=CONCAT(t.from_id,t.to_id) as temp,
t.from_id,
t.to_id,
t.msg,
t.isRead,
t.time
FROM
`chat_history` t,
-- 定义变量 一个用来排序,一个用来当中间变量判断条件
(SELECT @row_num_t :=0) t1,
(SELECT @to_id_t :='') t2
-- row_num_t变量赋值序号时需要先排好序
ORDER BY t.from_id,t.to_id, t.time DESC
) a
-- 排序为1的即为该组所求数据
where a.row_sort = 1
查询结果为:
筛选最新的一条消息即为row_sort=1的数据,结果为:
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐



所有评论(0)