Diese Nachricht wurde vor 12 jahr 11 monat 8 tag veröffentlicht. Unter Umständen ist der Inhalt nicht mehr auf dem aktuellsten Stand.
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.