Supprimer les doublons dans une table MySQL
Comment supprimer les doublons dans une table MySQL ? Plus précisément : Comment dé-doublonner une table sans risquer la perte de données ?
C’est très simple et une simple requête peut faire le travail pour vous.
Tout d’abord on va créer une table simple :
CREATE TABLE IF NOT EXISTS `ville` ( `id` int(11) NOT NULL AUTO_INCREMENT, `nom` varchar(255) NOT NULL, `code` varchar(10) NOT NULL, PRIMARY KEY (`id`) )
On a donc une table de ville avec un ID, le nom de la ville et le code postal.
On va insérer plusieurs lignes, dont des doublons.
INSERT INTO `ville` (`nom`) VALUES
('Paris'),
('Les Paris'),
('Paris'),
('Paris'),
('Villeparisis');
On a donc 3 fois la ligne « Paris » dans notre table. On pourrait le supprimer à la main vous me direz, mais sur une table qui contient toutes les villes du monde, c’est moins facile !
C’est là que notre requête « magique » entre en jeu : Simple, il suffit de rendre le champs « nom » unique ! Oui mais il y a une petite astuce qui évitera l’erreur que vous venez d’avoir « Duplicate entry … »
Il suffit d’y rajouter un « IGNORE » !
ALTER IGNORE TABLE ville ADD UNIQUE INDEX(nom);
Et voilà ! Il ne reste qu’une seule entrée « Paris » dans votre base de données. Libre à vous de supprimer (ou non) l’index unique une fois le ménage fait !
