in MySQL

Doppelte Einträge in MySQL Tabelle finden

closeDiese Nachricht wurde vor 5 jahr 6 monat 29 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.

Schreibe einen Kommentar

Kommentar