Как удалить дубликаты в бд - 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 если оно Вам не нужно (если оно у Вас было изначально - эта строка не нужна)
Объяснение кода листинга программы
- Добавляем новое поле
id
в таблицуtime_t
с автоинкрементом - Создаем временную таблицу
temp_t
с уникальными значениямиid
для каждой группы строк с одинаковыми значениями в столбцеname
- Удаляем все строки из таблицы
time_t
, которые не присутствуют во временной таблицеtemp_t
- Удаляем поле
id
из таблицыtime_t
, если оно не нужно
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д