关于MySQL 处理重复数据

统计重复数据

如下咱们将统计表中 first_name 和 last_name的重复记录数:mysql

mysql> SELECT COUNT(*) as repetitions, last_name, first_name -> FROM person_tbl -> GROUP BY last_name, first_name -> HAVING repetitions > 1;

以上查询语句将返回 person_tbl 表中重复的记录数。 通常状况下,查询重复的值,请执行如下操做:sql

  • 肯定哪一列包含的值可能会重复。
  • 在列选择列表使用COUNT(*)列出的那些列。
  • 在GROUP BY子句中列出的列。
  • HAVING子句设置重复数大于1。

 

过滤重复数据

若是你须要读取不重复的数据能够在 SELECT 语句中使用 DISTINCT 关键字来过滤重复数据。spa

mysql> SELECT DISTINCT last_name, first_name -> FROM person_tbl;

你也能够使用 GROUP BY 来读取数据表中不重复的数据:索引

mysql> SELECT last_name, first_name -> FROM person_tbl -> GROUP BY (last_name, first_name);

 

删除重复数据

若是你想删除数据表中的重复数据,你能够使用如下的SQL语句:it

mysql> CREATE TABLE tmp SELECT last_name, first_name, sex FROM person_tbl GROUP BY (last_name, first_name, sex); mysql> DROP TABLE person_tbl; mysql> ALTER TABLE tmp RENAME TO person_tbl;

固然你也能够在数据表中添加 INDEX(索引) 和 PRIMAY KEY(主键)这种简单的方法来删除表中的重复记录。方法以下:io

mysql> ALTER IGNORE TABLE person_tbl -> ADD PRIMARY KEY (last_name, first_name);
相关文章
相关标签/搜索