MySQL 查询重复数据,删除重复数据保留id最小的一条作为唯一数据
  • 分类:MYSQL
  • 发表:2022-02-21
  • 围观(1,532)
  • 评论(0)

使用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)
Top