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

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

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

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

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

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

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

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

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


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

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

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