Здравствуйте, есть таблица (40К записей). Есть дублирующие записи. Нужно их удалить, оставив одну оригинальную.
Делаю так (сравниваю по столбцу name)
delete from `admin_eda`.`eda`
where `eda`.`id` not in (
select min(`eda`.`id`)
from `admin_eda`.`eda`
group by `eda`.`name`
)
Выдает
#1093 - Не допускается указание таблицы 'eda' в списке таблиц FROM для внесения в нее изменений
Конвертируйте подзапрос в представление (view), и ограничение не сработает. А вью потом удалите, операция-то одноразовая...
CREATE VIEW select_min_id_from_eda
AS
SELECT MIN(`eda`.`id`) min_id
FROM `admin_eda`.`eda`
GROUP BY `eda`.`name`;
DELETE FROM `admin_eda`.`eda`
WHERE `eda`.`id`
NOT IN ( SELECT min_id
FROM select_min_id_from_eda
);
DROP VIEW select_min_id_from_eda;
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости