суббота, 3 августа 2013 г.

Удалить дубликаты из таблицы mysql (Remove duplicates in table mysql)

Есть таблица test_table вида:

duplicate_idvalue
10
20
31
41
52
62
Задача: необходимо удалить строки с дубликатами значений value

Решение:
DELETE FROM test_table WHERE duplicate_id NOT IN 
(SELECT * FROM (SELECT duplicate_id FROM test_table
                GROUP BY value) AS d); 


Результат выполнения:
duplicate_idvalue
10
31
52

Возможно для выполнения скрипта придется отключить опцию безопасного обновления таблицы в mySQL:
 Edit -> Preferences -> SQL Queries ->"Safe Updates" и сделать реконнект.