当前位置:网站首页> MySql 查询符合条件的最新数据行
MySql 查询符合条件的最新数据行
2022-07-05 16:42:00 【1024问】
平时做业务,经常是需要查什么什么什么的最新的一条数据。
那至于最新这个概念, 对于产品来说,经常会说的是 时间顺序,最新也就是 最近的意思。
结合示例:
这是一张记录人员来访的记录表。
数据表里的数据准确记录了每个人来访时带的帽子颜色、时间、人员编码(每个人唯一)。

数据样例:

需要做到的是 :
拿出符合条件的最新的来访记录。
你会最怎么做?
先实现一点的, 取出 A101 这个人员编码的 最新来访记录 。
首先先展示错误的sql示例: 想当然地使用max() 函数。
SELECT MAX(id) AS id ,user_code,cap_color,create_time FROM vist_record WHERE user_code='A101' ; 查询结果(错误的结果):

显然咋一看出来的数据有模有样,但是其实是错的。
为什么是错的的,可以稍微讲一下,既然评论区有人感兴趣了(欢迎兄弟们说出自己的看法)。
简单叙述, max是聚合函数, 我们的错误示例没配合group by 去使用, 这时候其实也就mysql这个家伙能让我们执行了,很多数据库都直接报错的。
那么执行是执行的,其实这时候mysql相当于把整个表当作了一个内容块去进行一个压缩检索。
我们加上了where 条件 user_code='A101',所以整个内容块确实过滤掉了其他不是user_code='A101' 的数据。
也就是说这种松懈执行的情况下,mysql保证max 返回(相关列) 的最大值, 其他列字段它是不保证的。
正确的数据是 :

那是不是max(id) 用不了了?
正确用法(将符合条件的最大id值作为条件):
SELECT id,user_code,cap_color,create_timeFROM vist_recordWHERE id IN (SELECT MAX(id) AS id FROM vist_record WHERE user_code='A101' )查询结果:

但是看到上面使用子查询的这种方式, 大家心里面肯定也已经在暗暗地骂娘, 拿个最新数据这么麻烦?
有没有简单一点的?
有。
比如说,我们已经确定了, id是自增的,id最大的数据(符合条件的数据) 就是最新的。
那么我们就可以使用倒序 DESC 来取最新数据:
DESC 也就是 倒序/降序 。
PS:

使用倒序查找:
SELECT *FROM vist_recordWHERE user_code='A101'ORDER BY id DESCLIMIT 1;查询结果:

或者根据时间倒序:
SELECT *FROM vist_recordWHERE user_code='A101'ORDER BY create_time DESCLIMIT 1;查询结果:

就这么简单实现了吗?
那么我们如果需求要的不是指定A101 要的是涉及到的每一个人的最新数据呢?
也就是存在多组的概念。
每一类的符合条件的最新数据
橙色框就是 A101 、B202 、 C303 分别的最新记录 , 我们要取出来。

错误示例:
SELECT MAX(id) AS id ,user_code,cap_color,create_time FROM vist_record GROUP BY user_code错误的筛选结果:

正确编码:
SELECT id ,user_code,cap_color,create_time FROM vist_record WHERE id in(SELECT MAX(id) AS id FROM vist_record GROUP BY user_code )
到此这篇关于MySql 查询符合条件的最新的数据行的文章就介绍到这了,更多相关MySql查询最新数据行内容请搜索软件开发网以前的文章或继续浏览下面的相关文章希望大家以后多多支持软件开发网!
边栏推荐
- Deeply cultivate 5g, and smart core continues to promote 5g applications
- 【剑指 Offer】66. 构建乘积数组
- 兰空图床苹果快捷指令
- The second day of learning C language for Asian people
- WSL2.0安装
- 【性能测试】全链路压测
- The two ways of domestic chip industry chain go hand in hand. ASML really panicked and increased cooperation on a large scale
- Allusions of King Xuan of Qi Dynasty
- 腾讯音乐上线新产品“曲易买”,提供音乐商用版权授权
- High number | summary of calculation methods of volume of rotating body, double integral calculation of volume of rotating body
猜你喜欢

采用药丸屏的iPhone14或引发中国消费者的热烈抢购
![[61dctf]fm](/img/22/3e4e3f1679a27d8b905684bb709905.png)
[61dctf]fm

拷贝方式之DMA

【性能测试】jmeter+Grafana+influxdb部署实战

高数 | 旋转体体积计算方法汇总、二重积分计算旋转体体积

Jarvis OJ shell traffic analysis

CMake教程Step4(安装和测试)

China Radio and television officially launched 5g services, and China Mobile quickly launched free services to retain users
MYSQL group by 有哪些注意事项

ECU简介
随机推荐
Solution of vant tabbar blocking content
高数 | 旋转体体积计算方法汇总、二重积分计算旋转体体积
C how TCP restricts the access traffic of a single client
Is it safe for qiniu business school to open a stock account? Is it reliable?
Embedded UC (UNIX System Advanced Programming) -3
激动人心!2022开放原子全球开源峰会报名火热开启!
easyNmon使用汇总
【剑指 Offer】61. 扑克牌中的顺子
[first lecture on robot coordinate system]
Embedded UC (UNIX System Advanced Programming) -2
composer安装报错:No composer.lock file present.
C# TCP如何设置心跳数据包,才显得优雅呢?
Etcd 构建高可用Etcd集群
Detailed explanation of printf() and scanf() functions of C language
【729. 我的日程安排表 I】
Learnopongl notes (II) - Lighting
ECU简介
一个满分的项目文档是如何书写的|得物技术
Keras crash Guide
Error in composer installation: no composer lock file present.