Как удалить дублирующие записи в mysql
13.09.2010Требуется решить следующую проблему. Есть таблица. Первичный ключ id, кроме всех прочих полей есть поле name. Оказывается, что существует несколько строк с разными id, но одним и тем же name.
Понятно, что в некоторых случаях имеет место неправильный выбор первичного ключа. Причина и последствия этого оставим за гранью статьи. Задача – сделать так, чтобы была только одна строка с таким name. То есть требуется удалить дубликаты.
Колдовать это в mysql можно по разному, вплоть до временных таблиц и т.д. Однако есть способ проще – с помощью создания уникального индекса.
Итак
CREATE TABLE copy_table SELECT * FROM `таблица`;
ALTER IGNORE TABLE copy_table ADD UNIQUE ( Name );
А теперь внимательно смотрите на дубликаты. Вуаля!