Mysql 去重

Mysql 去重

创建表

create table person(
    person_id int primary key auto_increment,
    person_name varchar(32)
)engine =InnoDB default charset utf8;

插入数据

insert into person (person_name) values ('jack');
insert into person (person_name) values ('jack');
insert into person (person_name) values ('jack');
insert into person (person_name) values ('mike');
insert into person (person_name) values ('tom');
insert into person (person_name) values ('jim');

在这里插入图片描述

现在想使数据库中的数据没有重复记录

执行以下sql语句

delete p2
from person p2
where p2.person_id in (select a.person_id
                       from (select p.person_id
                             from person p
                             where p.person_name in (select per.person_name
                                                     from person per
                                                     group by per.person_name
                                                     having count(per.person_name) > 1)
                               and p.person_id not in (select min(per.person_id)
                                                       from person per
                                                       group by per.person_name
                                                       having count(per.person_name) > 1)) a);

获得结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值