2016-04-29 107 views
-1

我知道當您搜索這個內容時會出現很多結果,但我無法找到一個簡單明瞭的答案來回答我想要的內容。MySQL刪除後續重複操作

爲簡單起見,說我有兩列的表:

「CALL_ID」(PK,獨特的,自動遞增)&「全局唯一標識符」

我想重複刪除的行guid,保持每個guid的第一次出現。

回答

0

您可以使用join

delete c 
    from calls c left join 
     (select guid, min(call_id) as minci 
      from calls 
      group by guid 
     ) cc 
     on cc.minci = c.call_id 
    where cc.minci is null; 
+0

注意,這也將刪除具有NULL的GUID列值的所有行。 (這可能是OP想要的行爲,但規範沒有提及任何有關它的事情。)我們是否認爲GUID的NULL值是相互「重複的」,還是認爲是不同的? – spencer7593

+0

謝謝。我寧願不刪除空值 – nevodj

+0

如果'guid'有可能是'NULL',則在'delete'中添加'where guid not null'。 –