sql 查找重复数据和去重只剩一条数据

382 阅读1分钟

通过 key 和 scaletype 两个字段进行重复判断的依据,通过如下语句即可显示重复的数据

select * from tokens where key in(select key from tokens group by key,scaletype having count(key)>1) 

使用这条语句得有 id 等类似的字段才可以,通过融入上述的查找重复的语句,然后再加上一个不是最小 id 的判断语句,即可删除重复数据,留下 id 最小的那条数据,达到去重只剩一条的目的。

delete from tokens where 
key in(select key from tokens group by key,scaletype having count(key)>1)  
and id not in (select min(id) from tokens group by key,scaletype having count(key)>1)