Mailinglisten-Archive |
Hallo, > O.k. aber wie kannst Du die Doppelten löschen? Nach > T23236 kann man ja nicht suchen, oder? > in der Datenbank steht neben strasse, plz, ort, vorname, nachname, usw. eben auch der zusammengesetzte soundexcode. Der soundexcode wird bei anlegen des Datensatzes bereits geschrieben. Wird nun ein neuer Datensatz in die Tabelle eingefügt, wird dessen soundexcode am besten sogar per script generiert und allein nach dem soundexcode in der Datenbank gesucht. (SELECT id FROM... WHERE soundex_code='$code') Wird ein Datensatz gefunden, so wird dieser Datensatz geupdatet (evtl. nur leere Felder überschreiben, je nachdem) Wird kein Datensatz gefunden, so wird der neue Datensatz per INSERT eingefügt. Wenn du eine bestehende Datenbank mit Adressen haben solltest, und willst diese abgleichen, dann würde ich ein neues Feld in deine Tabelle einfügen. Dieses Feld kannst du dann füllen: UPDATE adressen set soundex_code=CONCAT(ucase(anrede),soundex(vorname),soundex(nachname),soundex (strasse),plz); Den Abgleich kannst du dann wohl nur per script machen. Einfach "GROUP BY soundex_code" suchen und alle Datensaetze die doppelt sind entfernen/deaktivieren. Wenn du Datensaetze entfernst musst Du aber aufpassen, dass die Tabellenabhaengigkeiten nicht verletzt werden zu evtl. anderen Tabellen. Gruss, Tom
php::bar PHP Wiki - Listenarchive