【MySQL】【13】分组查询取每组最新的一条数据
前言:获取所有用户填写的最新一条地址数据
正文:
错误写法:
mysql5.7时,子查询的排序已经变为无效了
SELECT * FROM (SELECT * FROM address ORDER BY create_time DESC) a GROUP BY user_id
方法1:
此时子查询就不光是排序,所以此时排序会生效,但有条数限制
SELECT * FROM (SELECT * FROM address ORDER BY create_time DESC LIMIT 10000) a GROUP BY user_id
方法2:
通过MAX函数获取最新的时间和人员ID(分组条件),然后作为一张表和原来的数据进行联查
注:这种方式如果有两条数据的user_id和create_time都相等会查出来两条数据,这种情况只能distinct一下了
SELECT t.* FROM (SELECT user_id, max(create_time) as create_time FROM address GROUP BY user_id) a INNER JOIN address t ON t.user_id = a.user_id and t.create_time=a.create_time
参考博客:
MySQL分组查询每组最新的一条数据(通俗易懂) - 劈天造陆 - 博客园
https://www.cnblogs.com/java-spring/p/11498457.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架