Как удалить дубликаты в бд - MySQL

Узнай цену своей работы

Формулировка задачи:

Есть таблица time в ней поля name и status. в поле name встречаются дубликаты как их можно удалить что бы остались только уникальные поля без повторений.

Решение задачи: «Как удалить дубликаты в бд»

textual
Листинг программы
  1. ALTER TABLE time_t ADD id INT(11) PRIMARY KEY AUTO_INCREMENT;
  2. #Нужно добавить поле id для удобной выборки (если оно у Вас есть - эта строка не нужна)
  3. CREATE TEMPORARY TABLE temp_t
  4. as  (
  5.    SELECT min(id) as id
  6.    FROM time_t
  7.    GROUP BY name
  8. );
  9. #Создаем временную таблицу с уникальными значениями
  10.  
  11. DELETE FROM time_t WHERE time_t.id NOT IN
  12. (SELECT id FROM temp_t);
  13. #Удаляем все повторения
  14. ALTER TABLE time_t DROP COLUMN id;
  15. #Удаляем поле id если оно Вам не нужно (если оно у Вас было изначально - эта строка не нужна)

Объяснение кода листинга программы

  1. Добавляем новое поле id в таблицу time_t с автоинкрементом
  2. Создаем временную таблицу temp_t с уникальными значениями id для каждой группы строк с одинаковыми значениями в столбце name
  3. Удаляем все строки из таблицы time_t, которые не присутствуют во временной таблице temp_t
  4. Удаляем поле id из таблицы time_t, если оно не нужно

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


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

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

10   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут