在列选择列表使用COUNT(*)列出的那些列。
在GROUP BY子句中列出的列。
HAVING子句设置重复数大于1。
过滤重复数据
如果你需要读取不重复的数据可以在 SELECT 语句中使用 DISTINCT 关键字来过滤重复数据。
| mysql> SELECT DISTINCT last_name, first_name -> FROM person_tbl -> ORDER BY last_name; |
你也可以使用 GROUP BY 来读取数据表中不重复的数据:
| mysql> SELECT last_name, first_name -> FROM person_tbl -> GROUP BY (last_name, first_name); |
删除重复数据
如果你想删除数据表中的重复数据,你可以使用以下的SQL语句:
| mysql> CREATE TABLE tmp SELECT last_name, first_name, sex -> FROM person_tbl; -> GROUP BY (last_name, first_name); mysql> DROP TABLE person_tbl; mysql> ALTER TABLE tmp RENAME TO person_tbl; |
当然你也可以在数据表中添加 INDEX(索引) 和 PRIMAY KEY(主键)这种简单的方法来删除表中的重复记录。方法如下:
| mysql> ALTER IGNORE TABLE person_tbl -> ADD PRIMARY KEY (last_name, first_name); |
以上就是MySQL处理重复数据的相关资料,希望对大家的学习有所帮助。










