我知道,從mysql刪除重複往往是在這裏討論。但是在我的情況下,這個解決方案沒有任何問題。刪除從大型MySQL地址數據庫重複
所以,我有地址數據幾乎像這樣的DB:
ID; Anrede; Vorname; Nachname; Strasse; Hausnummer; PLZ; Ort; Nummer_Art; Vorwahl; Rufnummer
ID是主鍵和獨特的。
,我有例如entrys這樣的:
1;Herr;Michael;Müller;Testweg;1;55555;Testhausen;Mobile;;67890
2;Herr;Michael;Müller;Testweg;1;55555;Testhausen;Fixed;045678;877656
不同******中國都沒有問題,因爲他們是不相關的我。所以我只想刪除姓氏,街道和郵編中的副本。在這種情況下,ID 1或ID 2.哪一個都不重要。
我試圖刪除它實際上是這樣的:
DELETE db
FROM Import_Daten db,
Import_Daten dbl
WHERE db.id > dbl.id AND
db.Lastname = dbl.Lastname AND
db.Strasse = dbl.Strasse AND
db.PLZ = dbl.PLZ;
並插入到一個複製表:
INSERT INTO Import_Daten_1
SELECT MIN(db.id),
db.Anrede,
db.Firstname,
db.Lastname,
db.Branche,
db.Strasse,
db.Hausnummer,
db.Ortsteil,
db.Land,
db.PLZ,
db.Ort,
db.Kontaktart,
db.Vorwahl,
db.Durchwahl
FROM Import_Daten db,
Import_Daten dbl
WHERE db.lastname = dbl.lastname AND
db.Strasse = dbl.Strasse And
db.PLZ = dbl.PLZ;
完整的表格包含了10Mio行。大小實際上是我的問題。該MySQL運行在MacBook上的MAMP服務器上,具有1,5GHZ和4GB RAM。所以不是很快。 SQL語句在phpmyadmin中運行。其實我沒有其他系統的可能性。
Phantastic!真的快速工作!非常感謝! – swapfile
爲防止插入重複項,我們可以在(姓氏,Strasse,PLZ)字段集上添加唯一索引。 – olegsv
第一次應用此解決方案將刪除所有重複記錄。它不會留下重複記錄的一個副本。 – olegsv