關於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);
相關文章
相關標籤/搜索