Как удалить дубликаты в бд - 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
, если оно не нужно
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д