Creo que simplemente podría intentar agregar un ÍNDICE ÚNICO usando IGNORE:
ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`column`);
MySQL debería responder con algo como:
Query OK, 4524 rows affected (1.09 sec)
Records: 4524 Duplicates: 9342 Warnings: 0
Por supuesto, dejará que MySQL decida qué filas descartar.
EDITAR:
esto funciona para tantas columnas como quieras:
ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`col1`, `col2`, `col3`);
consulte la documentación de MySQL en CREAR ÍNDICE
. Un problema común (al menos uno con el que me encontré una vez) es olvidar que NULL = NULL
no es cierto (pero NULL
), por lo tanto {42, NULL} y {42, NULL} están permitidos para un índice ÚNICO en dos columnas.