Удаление повторяющихся записей - MySQL (220144)
Формулировка задачи:
Здравствуйте!
есть запрос, который выбирает повторяющиеся записи
как мне удалить эти самые повторяющиеся записи?
пробовал так:
но это не правильно.
Подскажите как удалить записи
SELECT * FROM `test` GROUP BY son, child HAVING COUNT(son)>1
DELETE FROM `test` GROUP BY son, child HAVING COUNT(son)>1
Решение задачи: «Удаление повторяющихся записей»
textual
Листинг программы
delete t from test t where exists( select 1 from test e where e.son=t.son and e.child=t.child and e.id>t.id );
Объяснение кода листинга программы
В данном коде удаляются повторяющиеся записи из таблицы test.
delete t— команда удаления записей из таблицыtestfrom test t— указание, что операция удаления выполняется для таблицыtestи её записейwhere exists(select 1 from test e— условие, которое определяет, что запись должна быть удалена, если существует другая запись с такими же значениями в поляхson,childи с большим значением в полеidwhere e.son=t.son and e.child=t.child and e.id>t.id— условие, которое определяет, что запись должна быть удалена, если существует другая запись с такими же значениями в поляхson,childи с большим значением в полеidПеременные, которые используются в запросе: —t— переменная, которая ссылается на текущую запись таблицыtest—e— переменная, которая используется для хранения значений полей записи, которая будет удалена —son— название поля записи —child— название поля записи —id— название поля записи