Удалить дублирующиеся записи из БД mySQL

445
16 мая 2017, 05:27

Здравствуйте.

Есть таблица mySQL table_1 такая:

id | name    | ... | ... |  
1  | vasya   | ... | ... |  
2  | sasha   | ... | ... |  
3  | vasya   | ... | ... |  
4  | gena    | ... | ... |  
5  | sasha   | ... | ... |

Надо сделать из неё table_2

id | name    | ... | ... |  
1  | sasha   | ... | ... |  
2  | vasya   | ... | ... |  
3  | gena    | ... | ... |  

То бишь, по столбцу name найти все совпадения имён, и удалить лишние, оставив только одну, последнюю по id, запись. И записать результат в новую таблицу.

Как это лучше сделать, учитывая, что в table_1 100000+ строк, и сколько из них дублируется, неизвестно? Спасибо.

Answer 1

по столбцу name найти все совпадения имён, и удалить лишние, оставив только одну, последнюю по id, запись. И записать результат в новую таблицу.

Разумнее сделать это в обратном порядке.

-- записать желаемое в новую таблицу
INSERT INTO table2 (id, name, ...)
SELECT t1.id, t1.name, ...
FROM table1 t1
JOIN ( SELECT MAX(t11.id) id, t11.name
       FROM table1 t11
       GROUP BY t11.name
     ) sq ON t1.id=sq.id AND t1.name=sq.name;
-- очистить старую таблицу
TRUNCATE table1;
-- скопировать в неё только нужные записи
INSERT INTO table1 (id, name, ...)
SELECT id, name, ...
FROM table2;
READ ALSO
base64 неверное декодирование email аттача

base64 неверное декодирование email аттача

Добры день, уже 2 день сижу не могу найти ответа, проблема следующая, есть скрип на php, который генерирует простой xml файл и отправляет его раз...

338
“Unexpected token ”text“ of value” Twig

“Unexpected token ”text“ of value” Twig

При парсинге шаблона с такой вот секцией:{% section name = "disableVisualEditor" %} Происходит вот такая вот ошибка: Unexpected token "text" of value

280
Первый запуск symphony framework

Первый запуск symphony framework

В данный момент есть сервер Nginx + php 56 Есть поддомен под него записана папка на сервере - parser_dev в которой запускается index

266
Смена кодировки при экспорте MySQL в CSV

Смена кодировки при экспорте MySQL в CSV

Всем доброго времени сутокНужно экспортировать из БД в csv файл,делаю через функцию fputcsv() Сам код

289