Doppelete Einträger aus einer MySQL Datenbank löschen?
-
Meine Datenbank hat folgendes Muster:
Name, Vorname, Tel, Wohnort, PLZ,...... und noch 15 Felder mehr.Ich will alle Einträge löschen, die Doppelt sind. Doppelt heißt in allen Feldern gleich sind. Wenn ein Feld abweicht ist es nicht doppelt.
Wie mache ich das?
Danke
-
Da hast du ein Problem. In einem RDBMS darf ein Datensatz nicht gleich dem anderen sein.
Ein Datensatz muss immer eindeutig identifizierbar sein.
In deinem Fall hätte ich zumindest eine AutoINC-Wert eingefügt.Weiters entnehme ich das du deine Datenbank nicht normalisiert hast.
Wieviele Datensätze hast du den ?
-
das problem dabei ist, dass ich keinen primärschlüssel einbauen kann, weil ich die Daten aus einer Textdatei in die MySQL datenbank lade. (Ich lade eine Datei up und die datei wird mittels PHP Script in die Datenbank eingeladen).
siehe: http://www.php3-forum.de/beispiele/import.htm
ich habe die doppelten einträge mit hilfe einer temorären tabelle gelöscht.
-
Mache einfach eine Spalte mit einem Autowert. Damit ist jeder Datensatz eindeutig identifizierbar so wie es ein RDBMS braucht.
-
Vielleicht funktioniert es mit einem UNIQUE-Key über alle Spalten
-
Unix-Tom schrieb:
Mache einfach eine Spalte mit einem Autowert. Damit ist jeder Datensatz eindeutig identifizierbar so wie es ein RDBMS braucht.
habs eingefügt, danke.
-
um die doppelten rauszubekommen kannst du auch
Create table2 as select distinct * from table1;
machen. Geht natürlich nur wenn du noch keinen Autowert
drinnen hast, dann musst die Spalten angeben anhand derer
ein Eintrag als doppelt zählt.mfg
tobi