Nwlapcug.com


Come sbarazzarsi di duplicati in MySQL

Se la tabella MySQL contiene centinaia o migliaia di record, non volete guardare manualmente attraverso ciascuno di essi per cercare di identificare i record duplicati. MySQL non ha una singola query che è possibile utilizzare per rimuovere le voci duplicate in una tabella, ma si può utilizzare una combinazione di query ed eseguire insieme per eliminare il tuo doppio. Anche se la tabella utilizza una chiave primaria per identificare in modo univoco i record, è possibile rimuovere i duplicati non selezionando il campo chiave primaria nelle query.

Istruzioni

1

Accedere al vostro database MySQL e accedere allo strumento di query.

2

Immettere la seguente query:

CREARE tabella temporanea temp SELECT DISTINCT col1, col2, col3 FROM table_name gruppo da col1, col2, col3 avendo COUNT(*) > 1;

Questo crea una tabella temporanea che controlla la tabella fornita da "table_name" e quando viene rilevato un record duplicato, inserisce quel duplicato nella tabella temporanea, ma solo una volta. Ad esempio, se "table_name" ha tre voci, "Jim", "Bob" e "Bob", la tabella "temp" avrà solo un record, "Bob". Se "col1" agisce come un campo chiave primaria nella tabella, non includere "col1" nella query e semplicemente selezionare le altre due colonne.

3

Immettere la seguente query:

DELETE FROM nome_tabella dove (col1, col2, col3) IN (SELECT col1, col2, col3 da temp);

Questa query viene controllato ogni record in "table_name" ed Elimina tutti i record che dispongono di duplicati, tra cui l'originale. Ad esempio, se la tabella contiene tre voci, "Jim", "Bob" e "Bob", la query eliminerà entrambi record "Bob", lasciando solo "Jim" in "table_name." Ancora una volta, rimuovere i riferimenti a "col1" nella query se "col1" è il campo chiave primaria.

4

Immettere la seguente query:

INSERT INTO table_name(col1,col2,col3) SELECT col1, col2, col3 da temp;

Questa query essenzialmente copia tutti i record dalla tabella temporanea e inserendole "table_name." Se a questo punto "table_name" solo "Jim" e "temp" ha solo "Bob", dopo la query, "table_name" dovrà "Jim" e "Bob" record mentre la tabella temporanea viene eliminato. Ricordarsi di rimuovere i riferimenti "col1" se è una chiave primaria.

5

Eseguire tutte le query.