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);