MySQL中查询所有数据,其中重复的数据中只保留最新的一条,其余的过滤

本文介绍了一种在MySQL数据库中查询所有数据时,对于重复的条码号仅保留最新一条记录的方法。通过使用子查询和比较创建时间,有效地解决了查询结果中包含多个版本同一数据的问题。

今天遇到的问题,数据库的数据中的某个条码号可能存在着不同时间的多条数据,但是业务只想查询全部数据,并且单个条码号的最新的一条数据

描述:barcode为‘’123456的数据有两条或者多条,想查询所有数据,一个条码号只留一条最新的数据。
遇到的问题:百度了group by 发现没法查出最新的,只能查出旧的,而且执行顺序总是比order by 优先。
解决办法:select * from cpic a where not exists (select 1 form cpic b where b.barcode=a.barcode and b.creatTime > a.creatTime)
至于如何解释,自己也不咋理解,反正结果是有了,处女作记录下,以后变成大神再来看

这里更新下(2021/6/17)select * from (select * from cpic a order by a.id desc ) b group by b.barcode,注意不要用*浪费io,这里只是做个示范

评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值