Seite 1 von 1
MYSQL Datenbank "säubern"
Verfasst: 20.01.2008, 17:35
von bara.munchies
sagen wir mal ich hab folgende Datenbank.
+------+----------+
+ 345 + Emma +
+------+----------+
+ 456 + Thomas +
+------+----------+
+ 789 + Emma +
+------+----------+
Ich möchte aber, das Emma nur einmal vorkommt. Also jeder Wert der in der zweiten Spalte bereits vorhanden ist soll gelöscht werden.
Wie mach ich das mit sql?
Verfasst: 20.01.2008, 17:51
von bennos
Hallo
Für die Zukunft solltest du einfach die zweite Spalte Unique machen.
Für das auffinden von Duplicaten gibt es glaube ich keine Funtion in MYSQL.
Schau aber trotzdem mal ins Handbuch.
gruss
bennos
Verfasst: 20.01.2008, 18:06
von bara.munchies
ich hab die datenbank nicht erstellt, deswegen kann ich die nicht unique machen.
okay, ich such mal nach dublicates.
Verfasst: 20.01.2008, 18:32
von derhoesel
Du könntest z.B. per DISTINCT nur alle einzigartigen Einträge abfragen und die Ergebnisse in eine neue Datenbank schreiben, die dann die doppelten Einträge nicht hätte.
Verfasst: 20.01.2008, 20:02
von Troll
Mit einer SQL Abfrage wirst Du glaube ich nicht hinkommen. Der Grund: Im Normalfall ist ja eine Verknüpfung der id o.ä. zu einer anderen Tabelle hinterlegt. Wenn Du jetzt einfach die doppelten löscht, löscht Du ja indirekt die Zusammenhänge.
Re: MYSQL Datenbank "säubern"
Verfasst: 20.01.2008, 21:54
von mwa
bara.munchies hat geschrieben:sagen wir mal ich hab folgende Datenbank.
+------+----------+
+ 345 + Emma +
+------+----------+
+ 456 + Thomas +
+------+----------+
+ 789 + Emma +
+------+----------+
Ich möchte aber, das Emma nur einmal vorkommt. Also jeder Wert der in der zweiten Spalte bereits vorhanden ist soll gelöscht werden.
Wie mach ich das mit sql?
Ob das direkt in MySQL geht, bestimmt, ich kann dir nur den Weg über ein Z.B. php script aufzeugen. Pseudo - Code:
Code: Alles auswählen
Lese alle Datensätze aus der Datenbank
Schleife durch die Datensätze
Falls WertSpalt2 in ArrayWerteSpalte2 -> Lösche Datensatz
Sonst speicher WertSpalte2 in ArrayWerteSpalte2