mysql-13处理重复数据

1.防止表中出现重复数据

在mysql数据表中设置指定的字段为主键或唯一索引来保证数据的唯一行。

-- 方法1:指定主键
create `table person_tbl`(
    `first_name` char(20) not null,
    `last_name` char(20) not null,
    `set` char(10),
    primary key (last_name, first_name));

-- 方法2:设置唯一索引
create table `person_tbl`(
    `first_name` char(20) not null,
    `last_name` char(20) not null,
    `sex` char(10),
    unique(last_name, first_name));

-- insert ignore into:插入重复数据,就不执行;否则就插入新的数据。
insert ignore into person_tbl (last_name, first_name)
     values ( 'Jay', 'Thomas');

2.统计重复数据

统计表中first_name和last_name的重复记录数

-- 根据last_name,first_name分组列出每组的数量、列,限定条件重复数>1
select count(*) as repetitions, last_name, first_name from person_tbl 
    group by last_name,first_name having repetitions > 1;

3.过滤重复数据

使用distinct关键字即可

select distinct last_name, first_name from person_tbl;

4.删除重复数据

create table `tmp` select * from person_tbl group by last_name, first_name;

没有执行成功,提示有重复数据。ignore貌似没有生效
mysql> ALTER IGNORE TABLE person_tbl ADD PRIMARY KEY (last_name, first_name);

原文地址:https://www.cnblogs.com/csj2018/p/9966410.html