Je pense que vous pourriez simplement essayer d'ajouter un UNIQUE INDEX en utilisant IGNORE :
ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`column`);
MySQL devrait répondre par quelque chose comme :
Query OK, 4524 rows affected (1.09 sec)
Records: 4524 Duplicates: 9342 Warnings: 0
Bien sûr, vous laisserez à MySQL le soin de décider quelles lignes supprimer.
MODIFIER :
cela fonctionne pour autant de colonnes que vous le souhaitez :
ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`col1`, `col2`, `col3`);
consultez la documentation de MySQL sur CREATE INDEX
. Un piège commun (au moins un que j'ai rencontré une fois) est d'oublier que NULL = NULL
n'est pas vrai (mais NULL
), donc {42, NULL} et {42, NULL} sont autorisés pour un index UNIQUE sur deux colonnes.