Prosty sposób znaleziony na: http://forum.php.pl/index.php?showtopic=115729
Często zachodzi potrzeba usunięcia zduplikowanych rekordów w bazie danych. Przetestowałem masę rozwiązań z indeksami unique itp. ale jedno znalezione na forum php jest najskuteczniejsze – właśnie przetestowałem je na bazie z ponad 900 tyś rekordów i spisało się znakomicie
Składnia:
CREATE TEMPORARY TABLE tmp SELECT DISTINCT * FROM nazwa-naszej-bazy;
TRUNCATE TABLE nazwa-naszej-bazy;
INSERT INTO nazwa-naszej-bazy SELECT * FROM tmp;
DROP TABLE tmp;
Po kolei działania
1. Utworzenie tymczasowej tabeli tmp i przeniesienie do niej niezduplikowanej zawartości bazy
2. Opróżnienie bazy na której chcieliśmy pozbyć się duplikatów
3. Przeniesienie zawartości z tablei tymczasowej do naszej bazy
4. Usunięcie tymczasowej tabeli