Le blog JSKL

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 !

Comments are closed.