Сообщения

Показаны сообщения с ярлыком "дубли"

Удаление дублей в таблице Mysql

Делается 4мя командами CREATE TEMPORARY TABLE IF NOT EXISTS temp_table(`id` int (10)) ENGINE=MEMORY; TRUNCATE TABLE temp_table; INSERT INTO `temp_table` ( SELECT MIN (id) as id FROM ` table ` GROUP BY `email`); DELETE FROM ` table ` WHERE `id` NOT IN ( SELECT `id` FROM `temp_table`);

Поиск дублей в базе данных. Очень быстрый способ

Появилась задача найти все дубли в базе данных и удалить их. Единственное решение видел только в написании php скрипта с вложенными друг в друга циклами и проверки значения нужных полей и неравенства id, но скрипт работает очень медленно. В sql есть много возможностей кроме основных операций и решил попробовать найти решение в самом языке. select Поле_для_проверки_на_дубль, count(*) from имя_базы group by Поле_для_проверки_на_дубль having count(*) > 1; Этот способ работает очень быстро, 11000 записей переваривает за пару секунд и нашел 320 дублей. После этого осталось только выполнить запрос скриптом и удалить $result = mysql_query("select Поле_для_проверки_на_дубль, count(*) from имя_базы group by Поле_для_проверки_на_дубль having count(*) > 1;"); while ($row = mysql_fetch_assoc($result)) {     echo "Есть дубль ".$row['id']." - ".$row['Поле_для_проверки_на_дубль']."<br/>";     $result2 = mysql_query(...