Doppelte Einträge in MySQL Tabelle finden
Ich denke der Titel verrät bereits um was es in diesem Artikel geht. Ausgangspunkt ist folgende Tabelle.
CREATE TABLE `xyz` (
`a` VARCHAR(50) NOT NULL,
`b` INT(10) NOT NULL DEFAULT '0',
`c` DATETIME NOT NULL
);
Nun soll die Spalte b einen UNIQUE Key bekommen. Das Problem ist aber, das es in dieser Spalte bereits viele Dopplungen gibt. Um sie zu finden nehme ich folgende Abfrage.
SELECT `b` FROM `xyz` WHERE `b` IN ( SELECT `b` FROM `xyz` GROUP BY `b` HAVING Count( 1 ) >1 );
Die Abfrage zeigt mir jetzt alle Einträge der Spalte b die mehr als einmal vorkommen. Jetzt kann man die Einträge entweder manuell bereinigen oder die SELECT Abfrage in eine DELETE Abfrage umbauen. Fertig.


3. Januar 2012 um 12:08
[...] DUPLICATE KEY UPDATE. Hierzu muss die entscheidende Spalte b als UNIQUE definiert werden (Hinweis: Doppelte Eintrage in MySQL Tabelle finden) und die Query in der Applikation wie folgt angepasst [...]