Jeg tror, at du bare kan prøve at tilføje et UNIKT INDEX ved at bruge IGNORE:
ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`column`);
MySQL burde svare med noget som:
Query OK, 4524 rows affected (1.09 sec)
Records: 4524 Duplicates: 9342 Warnings: 0
Selvfølgelig vil du lade det være op til MySQL at bestemme, hvilke rækker der skal droppes.
EDIT:
dette virker for så mange kolonner, som du vil:
ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`col1`, `col2`, `col3`);
tjek MySQL's dokumentation på OPRET INDEKS
. En almindelig gotcha (mindst én jeg stødte på én gang) er at glemme at NULL = NULL
er ikke sandt (men NULL
), derfor er {42, NULL} og {42, NULL} tilladt for et UNIKT indeks på to kolonner.