Myslím, že byste mohli jednoduše zkusit přidat UNIQUE INDEX pomocí IGNORE:
ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`column`);
MySQL by mělo odpovědět něco jako:
Query OK, 4524 rows affected (1.09 sec)
Records: 4524 Duplicates: 9342 Warnings: 0
Rozhodnutí, které řádky vypustíte, samozřejmě necháte na MySQL.
EDIT:
toto funguje pro tolik sloupců, kolik chcete:
ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`col1`, `col2`, `col3`);
zkontrolujte dokumentaci MySQL na stránce CREATE INDEX
. Častým problémem (alespoň jedním, na který jsem jednou narazil) je zapomenout, že NULL = NULL
není pravda (ale NULL
), proto jsou pro UNIQUE index ve dvou sloupcích povoleny {42, NULL} a {42, NULL}.