-
SQL > supprimer des doublons
AFFICHER LES DOUBLONS
SELECT COUNT(*) AS nbr_doublon, col_1, col_2, col_3 FROM nom_table GROUP BY col_1, col_2, col_3 HAVING COUNT(*) > 1 ORDER BY nbr_doublon DESC
EXPLICATIONS :
nbr_doublonvariable pour exploiter les doublonscol_xcolonnes qui servent de références pour trouver les doublonsHAVING COUNT(*) > 1n’aficher que les doublonsORDER BY nbr_doublon DESCpour afficher les doublons par ordre décroissantsSUPPRIME LES DOUBLONS
supprimer les lignes en trop qui possèdent les même données dans les colonnes
col_1àcol_3:DELETE nom_table FROM nom_table LEFT OUTER JOIN ( SELECT MIN(col_ID) as id, col_1, col_2 FROM nom_table GROUP BY col_1, col_2 ) as t1 ON nom_table.col_ID = t1.id WHERE t1.id IS NULL
EXPLICATIONS :
col_IDnom de la colonne contenant les ID (clés primaires)col_xcolonnes qui servent de références pour trouver les doublons> La requête va conserver la ligne avec l’ID le plus petit grâce à MIN(). Pour l’ID le plus grand : MAX().
ATTENTION : Aucun champ ne doit être NULL.