2015-09-04 72 views
-1

我有一個表有學生ID和學生的電子郵件地址,我想刪除重複的電子郵件地址,我使用MySQL並想知道任何好的解決方案。對於任何重複的電子郵件地址,請保持一個沒問題。使用SQL刪除表中的重複記錄

樣品輸入,

ID1 [email protected] 
ID2 [email protected] 
ID3 [email protected] 

示例輸出,

ID1 [email protected] 
ID2 [email protected] 

在此先感謝, 林

+1

你應該若已中的電子郵件地址數據庫中插入電子郵件時使用驗證...退出拋出電子郵件已存在的錯誤, –

+0

@RahmanQaiser,感謝您的建議,並已在那裏複製。任何建議表示讚賞。 :) –

+1

@ LinMa是那些ID是整數? –

回答

3

可以使用加入和保留新的或舊的ID作爲刪除數據根據您的願望和在這裏如何完成

delete t1 from table_name t1 
join table_name t2 on t1.email = t2.email and t1.id > t2.id 

這將保持舊的ID爲重複值 http://sqlfiddle.com/#!9/9d2925/1

如果你想那麼新的ID更改t1.id > t2.idt1.id < t2.id

+0

聰明而聰明。 :) –

+0

只是想知道SQL引擎如何執行底層的查詢。如果SQL引擎枚舉所有對並且以成對方式刪除較小的id,那麼不確定所有聯接組在每個組內,如果是的話,複雜性將很大。 –