Потребовалось мне удалять дублирующиеся строки в таблицах MySQL. При чем, на регулярной основе. Гугл выдал не так уж много годных рецептов. Реальных вариантов не так уж много: Первый, второй, третий.

Немного поковырявшись, выбрал оптимальный для моего случая вариант. Упрощённый пример:

1
mysql_query("ALTER IGNORE TABLE synonyms ADD UNIQUE INDEX(original,synonym)");

После выполнения данного запроса полученный индекс стоит удалить, чтобы избежать сообщений при дальнейшем добавлении одинаковых строк. Для этого следует сначала узнать имя получившегося индекса, если оно не было указано заранее:

1
mysql_query("SHOW INDEX FROM synonyms");

Затем удалить его:

1
mysql_query("DROP INDEX original ON synonyms");

При разовых операциях такого рода можно указывать SQL запросы прямо в панели PHPMyAdmin.

Однако, оказалось не всё так просто. После выполнения данной процедуры выяснилось, что MySQL почему-то не чувствительна к регистру русских букв и посчитала варианты с разным написанием слов как повторяющиеся. После небольшого консилиума с другим программистом PHP была изменена кодировка строк в таблице MySQL с utf8_general_ci (case insensitive — нечувствительная к регистру букв) на utf8_bin (utf8_general_cs — case sensitive — чувствительная к регистру). Проблема была решена.