Hyæna

Through the darkness of future past

MySQL: Duplikate in einer Tabelle


Wieder einmal nur eine Notiz für mich, dieses mal geht es um Duplikate in einer MySQL-Tabelle.
Für das Bestimmen der Datensätze, die in zwei Tabellenspalten identisch sind, diese Abfrage verwenden:

SELECT
    spalte1, COUNT(spalte1),
    spalte2,  COUNT(spalte2)
FROM
    tabelle
GROUP BY
    spalte1,
    spalte2
HAVING  
    COUNT(spalte1) > 1
    AND COUNT(spalte2) > 1;

Für das Löschen der Duplikate, so daß nur noch ein Datensatz mit der höchsten ID übrigbleibt, diese Abfrage verwenden:

DELETE t1 FROM tabelle t1
        INNER JOIN
    tabelle t2
WHERE
    t1.id < t2.id
    AND t1.spalte1 = t2.spalte1
    AND t1.spalte2 = t2.spalte2


Ähnliche Artikel