一.删除mysql中重复的数据的sql
1.数据演示:
2.要求:
去掉名字重复的数据,并且保留id最小的(这里需要注意的是如果数据没有主键,需要添加主键,用于去重,去重成功之后,可以再次删掉主键)
3.原sql语句:
delete from tableName where id in (select id from tableName group by name)
4.报错:
mysql不能对同一张表同时做查询和修改操作,
5.原因:
mysql不能对同一张表同时做查询和修改操作,所以需要对查询出来的临时表取个别名,
6.改进的sql语句:
delete from tableName
where id not in(
select * from (
select min(id) from tableName group by name
) as tableNamenew
)
7.解释:
按名称分组查询出来的最小值,如果是重复的那么挑选出来了一条最小的数据,如果不是重复的数据,则其本身就是最小的数据,而id不在最小的数据里面的数据,肯定是重复数据,删掉即可。