MYSQL 数据去重

数据里面有多个重复IP的数据,我们需要获取最新状态的那条记录

distinct去重只能获取到唯一的IP,但更多信息就要自己再查了

设备信息

id

hostipdiskcreateTime
1A1192.168.0.1100G2021-08-16
2A2192.168.0.2100G

2021-08-16

3A1192.168.0.199G2021-08-17
4A2192.168.0.299G2021-08-17

SELECT * FROM node_info 
WHERE id IN (SELECT MAX(id) FROM node_info GROUP BY ip );

当id是自增型数据时,处理比较简单,取出每个IP最大id的记录即可

但是当id是guid等其他值时就要用复杂一些的方法了

SELECT a1.* FROM node_info a1
JOIN  (SELECT ip, MAX(create_time) AS `create_time` FROM node_info GROUP BY ip ) a2
  ON a1.ip = a2.ip AND a1.create_time = a2.create_time

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值