【MySQL取重复的数据中时间最近的一条】

数据库有重复的数据时,我们有时候需要取出时间最近的一条,来满足业务场景。

从重复数据里面找出最后更新的数据
1.SQL模板

SELECT
  t1.重复列,
  t1.时间列,
  t1.其余列 
FROM
  表 t1
  INNER JOIN ( SELECT t2.重复列, max( t2.时间列 ) AS 时间列 FROM 表 t2 GROUP BY t2.重复列 ) AS t3 ON t1.重复列 = t3.重复列 
  AND t1.时间列 = t3.时间列

2、SQL查询数据

SELECT  t1.id,t1.dept_id,t1.update_time 
FROM tableA t1 INNER JOIN ( SELECT t2.id, max( t2.update_time ) 
AS last_updated_date FROM tableA t2 GROUP BY t2.id ) 
AS t3 ON t1.id = t3.id 
AND t1.update_time = t3.last_updated_date 
and t1.id in ("220995","220513","221116");
+----------+----------+---------------------+
| id   | dept_id  | update_time |
+----------+----------+---------------------+
| 220513 | 10102319 | 2024-08-09 23:59:59 |
| 220100 | 10116221 | 2024-09-04 00:00:00 |
| 221106 | 10093004 | 2024-08-09 23:59:59 |
| 220995 | 10116219 | 2024-08-23 00:00:00 |
+----------+----------+---------------------+
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值