2014-01-15 3 views
10

У меня есть стол для людей с дубликатами, вставленный с другим идентификатором. Я хочу удалить человека с дублирующимися именами, сохраняя только человека с минимальным ID. для e.G Запись для Absalon с ID 18398 должна оставаться и все остальные дубликаты удалены.Удаление дубликатов с минимальным ID

enter image description here

+0

возможно дубликат [Удаление повторяющихся строк из таблицы в Oracle] (http://stackoverflow.com/questions/529098/removing-duplicate-rows-from-table-in- oracle) – danihp

ответ

12

DELETE FROM persons WHERE id NOT IN (SELECT MIN(id) FROM persons GROUP BY name)

+0

Я получаю сообщение об ошибке с mysql Ver 14.14 Distrib 5.5.52: 'mysql> удалить из domain_map, где id не включен (выберите min (id) из домена domain_map по домену); ОШИБКА 1093 (HY000): вы не можете указать целевую таблицу «domain_map» для обновления в разделе FROM. – abatie

+0

@abatie. Задайте новый вопрос с тегом 'mysql', так как этот вопрос не касался mysql, и каждый диалект SQL различен , – Alexander

+0

@abatie Или вы можете посмотреть https://stackoverflow.com/questions/6471463/how-to-delete-duplicates-in-sql-table-based-on-multiple-fields – Alexander

Смежные вопросы