2013-08-06 28 views
1

我在查詢後刪除重複數據的一些幫助後,刪除了表中某個特定字段中的重複數據。刪除MySQL表中的重複值字段

我有一個表名爲聯繫人,我需要導入到另一個系統。新系統要求電子郵件字段是唯一的。我需要一個查詢,這將允許我搜索電子郵件字段並刪除任何重複數據或將其設置爲「」。

我不想刪除行,只是電子郵件的副本。因此,如果有兩個記錄包含電子郵件[email protected],那麼我想保留第一個參考,同時刪除第二個參考。

看起來像這應該是一個簡單的事情要做,但我努力工作,我們如何實現它。謝謝。

+0

你對錶的主鍵? – noz

回答

3

您需要使用類似以下的查詢:

UPDATE CONTACTS A, CONTACTS B 
    SET B.EMAIL=NULL 
WHERE A.EMAIL=B.EMAIL 
    AND A.KEY_FIELD>B.KEY_FIELD 

使用字段參考,以確定哪些被刪除。

+0

嗨,謝謝。 A和B是什麼?我用SQL很綠。 –

+0

A和B是表格的別名 - 它允許您與自己一起加入表格,從而查找重複項目。 – noz

+0

哦,太棒了,最後KEY_FIELD是什麼部分? –

0
UPDATE CONTACTS SET b.email = "" 
FROM CONTACTS a, CONTACTS b 
WHERE a.EMAIL = b.EMAIL AND a.ID>b.ID 

另一種可能的解決方案

參考:

http://stackoverflow.com/questions/2044467/how-to-update-two-tables-in-one-statement-in-sql-server-2005