Поскольку данные небольшие, может быть проще создать таблицу с аналогичной структурой и выполнить такой запрос:
INSERT INTO new_table (index, itemid, name, meta)
SELECT index, itemid, name, meta FROM old_table GROUP BY name
После этого удалите old_table
и переименуйте new_table
.
Также решение, которое могло бы сработать (я не уверен), состоит в создании уникального индекса с IGNORE
, например
ALTER IGNORE TABLE tblname
ADD UNIQUE INDEX ix_name (name)
IGNORE - это расширение MySQL для стандартного SQL.Он управляет работой ALTER TABLE, если в новой таблице присутствуют дубликаты уникальных ключей или появляются предупреждения при включенном строгом режиме.Если IGNORE не указан, копия прерывается и откатывается при возникновении ошибок дубликата ключа.Если указан IGNORE, только первая строка используется из строк с дубликатами на уникальном ключе. Другие конфликтующие строки удаляются.Неверные значения усекаются до ближайшего подходящего допустимого значения.