articoli > informatica e sviluppo > cancellare le righe duplicate in una tabella MySQL

cancellare le righe duplicate in una tabella MySQL

Penso che sia capitato a tutti prima o poi di trovarsi per qualche ragione una o più righe in una tabella che risultano duplicate secondo qualche criterio. Fortunatamente eliminarle è abbastanza facile, sempre che tu non abbia dei vincoli di chiave esterna che limitano le cancellazioni (nel qual caso devi fare una valutazione, se vale la pena disattivarli temporaneamente, trasformarli in CASCADE, oppure lasciare i riferimenti a NULL). La logica che ho seguito per creare questa query è molto semplice, sono partito dal presupposto che sia possibile stabilire un'eguaglianza di una colonna con sé stessa, e che sia possibile utilizzare la chiave primaria della tabella come elemento per decidere quale riga tenere:

DELETE t1 FROM test_table t1, test_table t2 WHERE t1.id > t2.id AND t1.test_field = t2.test_field

Ovviamente in questo esempio ho immaginato di intervenire su una tabella che si chiama test_table e di utilizzare il campo test_field come elemento di confronto; tu dovrai sostituire a questi nomi fittizi quelli appropriati per il tuo database.

Se sei interessato a una consulenza o a ricevere formazione su MySQL, sviluppo web e sistemistica puoi scrivermi direttamente a info@videoarts.eu per prenotare una call gratuita e senza impegno di una ventina di minuti per mettere a fuoco le tue esigenze!