Trovare record duplicati in una tabella di MariaDB-MySQL

27 luglio 2017

​Per spiegare come mettere in evidenza eventuali record duplicati, triplicati, insomma ripetuti, in una tabella di MariaDB o MySQL, facciamo un esempio.

Supponiamo di avere nel nostro database una tabella denominata utenti destinata a memorizzare i dati anagrafici di alcuni utenti e di voler evidenziare eventuali record che contengano lo stesso cognome, nome e data di nascita.
Supponiamo sempre che i corrispondenti campi nella tabella si chiamino cognome, nome, datanas.

Possiamo elencare i dati ripetuti, contando quante volte compaiono, eseguendo la seguente query:
MariaDB> select cognome, nome, datanas, count(*) from utenti group by cognome, nome, datanas having count(*) > 1;
​La risposta sarà qualcosa di simile a questo:
+---------------+-----------------+---------------+----------+
| cognome | nome | datanas | count(*) |
+---------------+-----------------+---------------+----------+
| LEOPARDI | GIACOMO | 1978-08-23 | 2 |
| VERDI | GIUSEPPE | 1986-12-10 | 3 |
| MANZONI | ALESSANDRO | 1966-07-11 | 2 |
+---------------+-----------------+---------------+----------+
Individuati i dati ripetuti potremo prendere le contromisure necessarie per sistemare la nostra tabella.