1. 程式人生 > >mysql中刪除重復數據

mysql中刪除重復數據

comment 分組 comm 技術 張新 講解 left idt png

//首先我們需要知道我們重復的都有哪些數據,

//第一步:進行對數據表進行分組,group by.

//第二步:進行後通過having進行限制篩選,條數大於等於2的

//第三步:進行多表刪除。

//案例:

//第一步,進行對數據分組,並通過having進行限制篩選,獲得存在重復數據老王,如下:

技術分享圖片

//第二步,進行刪除,請仔細看刪除語句,我們把篩選出來的 AS t2 當做子表。來進行篩選。

例如id和id的下一位進行比較,如果name相同,就刪除。

//請仔細看下面這句代碼,刪除的關鍵

mysql> delete t1 from ceshi AS t1 left join (select id,name from ceshi group by name having count(name)>=2) as t2 on t1.name = t2.name where t1.id>t2.id;

Query OK, 2 rows affected (0.10 sec)

//刪除成功

//語句講解:

//1、首先cheshi數據表起一個別名為 t1

//2、通過子連接來篩選出ceshi數據表中相同的數據,我們用他當做一張新的數據吧,別名為t2

//3、添加左外連接、

//4、然後根據id的編號來進行對比,例如id=1的name和id=2的name相同就進行刪除。

mysql中刪除重復數據