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,这里只是做个示范
本文介绍了一种在MySQL数据库中查询所有数据时,对于重复的条码号仅保留最新一条记录的方法。通过使用子查询和比较创建时间,有效地解决了查询结果中包含多个版本同一数据的问题。
3052





