Удаление повторяющихся записей - 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.

  1. delete t — команда удаления записей из таблицы test
  2. from test t — указание, что операция удаления выполняется для таблицы test и её записей
  3. where exists(select 1 from test e — условие, которое определяет, что запись должна быть удалена, если существует другая запись с такими же значениями в полях son, child и с большим значением в поле id
  4. where e.son=t.son and e.child=t.child and e.id>t.id — условие, которое определяет, что запись должна быть удалена, если существует другая запись с такими же значениями в полях son, child и с большим значением в поле id Переменные, которые используются в запросе: — t — переменная, которая ссылается на текущую запись таблицы teste — переменная, которая используется для хранения значений полей записи, которая будет удалена — son — название поля записи — child — название поля записи — id — название поля записи

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

10   голосов , оценка 4.2 из 5
Похожие ответы