13 Feb

Query per trovare o rimuovere record duplicati in una tabella MySql

Bè, come tutti i webmaster e programmatori quando creo un’applicazione spesso non considero il fatto che in un database (uso sempre MySql), spesso vengoni inseriti dati duplicati che hanno poca utilità. Per questo motivo spesso decidiamo di rimuoverli o analizzarli.

Qui di seguito troverete un paio di query (testate su MySql 5) che vi aiuteranno a risolvere (spero) i vostri problemi:

  1. Query per elencare i duplicati:

    SELECT Termine,count(*) as n FROM mia_tabella group by Termine having  n > 1

    Questa query vi restituira l’elenco dei termini duplicati.

  2. Query per rimuovere i duplicati.
    Bè prima di tutto fate un backup dei dati, una volta che i record sono andati….! 😀

    CREATE TABLE nuova_tabella as SELECT * FROM vecchia_tabella WHERE 1 GROUP BY Termine;

    Questa query creerà una nuova tabella e copierà i dati non duplicati per la chiave “Termine”.
    Quello che vi resta da fare è rimuovere la vecchia tabella e rinominare la nuova senza duplicati.

Se avete qualche domanda potete commentare…

Leave a Reply

Your email address will not be published. Required fields are marked *