2014-01-15 108 views
10

我有一個人員表,其中重複的人員使用不同的ID插入。我想刪除名稱重複的人員,只保留最低ID的人員。 e.G的 應保留ID爲18398的Absalon的記錄,並刪除所有其他重複項。刪除保留最小ID的重複記錄

enter image description here

+0

[卸下從表重複行中的Oracle]的可能重複(http://stackoverflow.com/questions/529098/removing-duplicate-rows-from-table-in- oracle) – danihp

回答

12

DELETE FROM persons WHERE id NOT IN (SELECT MIN(id) FROM persons GROUP BY name)

+0

我得到一個錯誤與MySQL版本14.14 Distrib 5.5.52:'mysql>刪除從domain_map其中id不在(從domain_map組按域()選擇min(id)); 錯誤1093(HY000):無法在FROM子句中指定目標表'domain_map'進行更新 – abatie

+0

@abatie請提出一個新問題,標記爲'mysql',因爲這個問題不是關於mysql,每個SQL方言都不同。 – Alexander

+0

@abatie或者你可能想看看https://stackoverflow.com/questions/64714​​63/how-to-delete-duplicates-in-sql-table-based-on-multiple-fields – Alexander