Запрос SQL на удаление дубликатов из таблицы по одному полю
1,00
р.
р.
Есть таблица с дубликатами в MySQL: (по полю name) id | name | surname -------------------- 1 | niko | surname 2 | niko | surname 3 | jane | surname 4 | jane | surname 5 | ivan | surname Необходимо получить таблицу такого вида id | name | surname -------------------- 1 | niko | surname 3 | jane | surname 5 | ivan | surname
Ответ Запрос для результирующей таблицы: SELECT min(id), name, surname FROM `table` GROUP BY name, surname Для удаления дубликатов подойдет такой прием: CREATE TEMPORARY TABLE `t_temp` as ( SELECT min(id) as id FROM `table` GROUP BY name, surname ) DELETE from `table` WHERE `table`.id not in ( SELECT id FROM t_temp ) Есть конечно нюансы...