使用SQL语句查询重复的数据有哪些:
SELECT * from 表名 WHERE 重复字段 IN(
select 重复字段 from 表名 GROUP BY 重复字段 HAVING COUNT(重复字段)>1 #条件是数量大于1的重复数据
)
使用SQL删除多余的重复数据,并保留Id最小的一条唯一数据:
DELETE FROM 表名 WHERE 重复字段 IN (SELECT 重复字段 FROM (SELECT 重复字段 FROM 表名 GROUP BY 重复字段 HAVING COUNT(重复字段)>1) e)
AND Id NOT IN (SELECT Id FROM (SELECT MIN(Id) AS Id FROM 表名 GROUP BY 重复字段 HAVING COUNT(重复字段)>1) t)
#查询显示重复的数据都是显示最前面的几条,因此不需要查询是否最小值
更加方便,简洁的写法
DELETE FROM 表名 WHERE Id NOT IN (SELECT Id FROM (SELECT MIN(Id) AS Id FROM 表名 GROUP BY 重复字段) t)