MySql(二) 去除重复数据

一.删除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不在最小的数据里面的数据,肯定是重复数据,删掉即可。

      

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值