Удаление повторяющихся записей - 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
— команда удаления записей из таблицыtest
from test t
— указание, что операция удаления выполняется для таблицыtest
и её записейwhere exists(select 1 from test e
— условие, которое определяет, что запись должна быть удалена, если существует другая запись с такими же значениями в поляхson
,child
и с большим значением в полеid
where e.son=t.son and e.child=t.child and e.id>t.id
— условие, которое определяет, что запись должна быть удалена, если существует другая запись с такими же значениями в поляхson
,child
и с большим значением в полеid
Переменные, которые используются в запросе: —t
— переменная, которая ссылается на текущую запись таблицыtest
—e
— переменная, которая используется для хранения значений полей записи, которая будет удалена —son
— название поля записи —child
— название поля записи —id
— название поля записи
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д