Я думаю, вы можете просто попробовать добавить УНИКАЛЬНЫЙ ИНДЕКС, используя IGNORE:
ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`column`);
MySQL должен ответить примерно так:
Query OK, 4524 rows affected (1.09 sec)
Records: 4524 Duplicates: 9342 Warnings: 0
Конечно, вы оставите этов MySQL, чтобы решить, какие строки отбрасывать.
РЕДАКТИРОВАТЬ:
это работает для любого количества столбцов:
ALTER IGNORE TABLE `table` ADD UNIQUE INDEX `name` (`col1`, `col2`, `col3`);
проверьте документацию MySQL по CREATEINDEX .Обычная ошибка (по крайней мере, одна, с которой я столкнулся один раз) - забывать, что NULL = NULL
не соответствует действительности (но NULL
), поэтому {42, NULL} и {42, NULL} разрешены для уникального индекса на двухколонны.