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
的数据,结果为:
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
已为社区贡献1条内容
所有评论(0)