0
我的問題是,刪除重複記錄包括原始
我擁有電子郵件,名字,和姓氏列的表。我可以使用哪些查詢刪除重複項,包括的原始內容?
因此,如果表中有兩個記錄,像這樣:
[email protected] | john | doe
[email protected] | john | doe
我怎麼能刪除兩個記錄,因此該記錄是完全從表中刪除?
我感謝你的幫助
我的問題是,刪除重複記錄包括原始
我擁有電子郵件,名字,和姓氏列的表。我可以使用哪些查詢刪除重複項,包括的原始內容?
因此,如果表中有兩個記錄,像這樣:
[email protected] | john | doe
[email protected] | john | doe
我怎麼能刪除兩個記錄,因此該記錄是完全從表中刪除?
我感謝你的幫助
該查詢將刪除具有相同的電子郵件,名字和姓氏的所有行:
DELETE yourtable.*
FROM
yourtable INNER JOIN (SELECT email, firstname, lastname
FROM yourtable
GROUP BY email, firstname, lastname
HAVING COUNT(*)>1) dup
ON yourtable.email = dup.email
AND yourtable.firstname = dup.firstname
AND yourtable.lastname = dup.lastname
請參閱小提琴here。
我正在使用將返回所有重複項的子查詢,並且我正在使用yourtable本身加入所有重複項,並刪除與該連接匹配的所有行。
編輯:如果你有一個表稱爲重複全部重複,你可以使用這個刪除查詢:
DELETE Contacts.*
FROM
Contacts INNER JOIN Duplicates
ON Contacts.email = Duplicates.email
AND Contacts.firstname = Duplicates.firstname
AND Contacts.lastname = Duplicates.lastname
這將匹配重複的行(具有相同的電子郵件中的聯繫人刪除所有行,相同的名字和相同的姓氏)
非常感謝您如此快速地回到我身邊。小提琴非常出色,但是當我運行查詢(嘗試兩次)時,它會掛起一個閃爍的光標。有任何想法嗎? 大約有50,000條記錄,我在12 GB內存的Core i7上運行 – Marshma11ow
您的表有多大?你可以嘗試添加一個索引(電子郵件,名字,姓氏) – fthiella
(編輯我的最新評論)大約有50,000條記錄。我正在運行帶有12GB內存的Core i7-3770。 這個怎麼樣..我有1個表,稱爲「重複」(相同的領域)和另一個表,「聯繫人」(相同的領域)。是否可以設置一個查詢來刪除「聯繫人」中的所有記錄在「重複」中具有相同的記錄? – Marshma11ow