如何删除数据库表中重复的数据

如何用SQL语句删除表中重复数据。

表名为cases,表中有四个字段时,表中数据如下:

如何删除数据库表中重复的数据_第1张图片 

1.id不同,其他字段相同

过滤重复字段,删除表中其他字段一样的数据

delete from cases where id not in(select  min(id) from cases group by name,age,sex)

效果如下:

如何删除数据库表中重复的数据_第2张图片 

 

2.id相同,其他字段也相同

需要构建一张临时表

Create table cases2(
id int,
name varchar(32),
age int,
sex varchar(2)
)

把去重后的数据放到临时表中

INSERT INTO cases2
SELECT * FROM cases WHERE id NOT in (
	SELECT id FROM cases GROUP BY id,name,age,sex HAVING COUNT(*) > 1
)UNION
SELECT * FROM cases GROUP BY id,name,age,sex HAVING COUNT(*) > 1

然后删除原表中的数据

TRUNCATE TABLE cases

把临时表中存放的数据放到原表中

INSERT INTO cases
select * from cases2

最后删除临时表

DROP TABLE cases2

效果如下:

 这就是如何删除数据库表中重复的数据,欢迎大家补充和指正。

你可能感兴趣的:(大数据)