Поиск дублей в базе данных. Очень быстрый способ
Появилась задача найти все дубли в базе данных и удалить их. Единственное решение видел только в написании 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(...