1. Добавляете в таблицу еще одно поле hash (varchar(40)), пишете цикл, который туда положит md5 от ваших строк.
2. На данное поле накладывается индекс.
3. Пишете запрос select * from `mytable` order by `hash` ASC;
4. В цикле по всем записям по сл. алгоритму:
4.а. если флаг пустой, то флаг = hash текущей строки, аккумулятор = строковому полю строки (под строкой понимается очередная запись из БД)
4.б. если флаг не пустой, то если флаг равен hash текущей строки, и аккумулятор = текущему полю строки, - удаляем данную запись
4.в если флаг не пустой и флаг не равен hash текущей строки: флаг = hash текущей строки, аккумулятор = строковому полю строки
Еще пришел в голову вариант: select count(id) as count, hash from `mytable` group by `hash`
и там обработать те хеши, у которых count > 1