Ilja: Mysql: Duplikate entfernen

Beitrag lesen

yo,

DELETE FROM xyz
WHERE unterschiedliches_zahlenfeld IN
    (
     SELECT MIN(unterschiedliches_zahlenfeld), gleiches_feld
     FROM xyz
     GROUP BY gleiches_feld
     HAVING COUNT(*) > 1
    )

das ist eine hübsche falle, weil sich die DELETE bedingung nicht nach einer eindeutigen spalte (primary key) richtet. werte, die in der einen gruppierung durch den subselect ausgewählt werden, werden in den IN Operator mit aufgenommen und können somit auch bei allen anderen datensätze zu treffern führen, was sicherlich nicht gewollt ist. oder mit anderen worten, die zusammengehörigkeit in der unterabfrage durch das GROUP BY wird in der DELETE WHERE bedingung wieder aufgehoben.

ich würde erst mal fragen, wie den die tabellenstruktur aussieht.

Ilja