我在查詢後刪除重複數據的一些幫助後,刪除了表中某個特定字段中的重複數據。刪除MySQL表中的重複值字段
我有一個表名爲聯繫人,我需要導入到另一個系統。新系統要求電子郵件字段是唯一的。我需要一個查詢,這將允許我搜索電子郵件字段並刪除任何重複數據或將其設置爲「」。
我不想刪除行,只是電子郵件的副本。因此,如果有兩個記錄包含電子郵件[email protected],那麼我想保留第一個參考,同時刪除第二個參考。
看起來像這應該是一個簡單的事情要做,但我努力工作,我們如何實現它。謝謝。
我在查詢後刪除重複數據的一些幫助後,刪除了表中某個特定字段中的重複數據。刪除MySQL表中的重複值字段
我有一個表名爲聯繫人,我需要導入到另一個系統。新系統要求電子郵件字段是唯一的。我需要一個查詢,這將允許我搜索電子郵件字段並刪除任何重複數據或將其設置爲「」。
我不想刪除行,只是電子郵件的副本。因此,如果有兩個記錄包含電子郵件[email protected],那麼我想保留第一個參考,同時刪除第二個參考。
看起來像這應該是一個簡單的事情要做,但我努力工作,我們如何實現它。謝謝。
您需要使用類似以下的查詢:
UPDATE CONTACTS A, CONTACTS B
SET B.EMAIL=NULL
WHERE A.EMAIL=B.EMAIL
AND A.KEY_FIELD>B.KEY_FIELD
使用字段參考,以確定哪些被刪除。
嗨,謝謝。 A和B是什麼?我用SQL很綠。 –
A和B是表格的別名 - 它允許您與自己一起加入表格,從而查找重複項目。 – noz
哦,太棒了,最後KEY_FIELD是什麼部分? –
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
你對錶的主鍵? – noz