私は、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
異なるのPhoneNumberは、問題ではありません。だから私は姓、ストリート、および郵便番号の重複を削除したいです。その場合、ID 1またはID 2。両方のどちらが重要でないか。
私は実際に削除して、このようにそれを試してみました:完全なテーブルが10Mio行の上に含まれてい
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;
:
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;
、コピーテーブルに挿入します。サイズは実際に私の問題です。 mysqlは、1,5GHZと4GBのRAMを搭載したMacBook上のMAMPサーバー上で動作します。それほど速くない。 SQL文はphpmyadminで実行されます。実際に私は他のシステムの可能性がありません。
Phantastic!本当に早く働いていた!どうもありがとう! – swapfile
重複の挿入を防止するために、(Lastname、Strasse、PLZ)フィールドの一意索引を追加できます。 – olegsv
このソリューションを初めて適用すると、すべての重複レコードが削除されます。重複した記録を1部も残さない。 – olegsv