supprimer les doublons

Petit nouveau ! | 9 Messages

26 mars 2007, 23:08

Bonjour

j'aimerai savoir comment éliminer les doublons d'une BDD

ma table est batie comme suite

villes
-------------------------------------------------------
id nom CP departement
-------------------------------------------------------
1 aubenas 07200 07
2 vogue 07200 07
3 aubenas 07200 07

je veux éliminer la ligne supplémentaire qui fait doublons

est ce que qulqu'un a une idée !!! :(

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

26 mars 2007, 23:19

Il faudrait commencer par définir ce qu'est un doublon entre "nom", "CP" ou la combinaison des deux. Je vais imaginer que tu retiens "CP" pour dédoublonner. Il te suffit de créer une table de structure identique mais en déclarant "CP" UNIQUE. Ensuite tu y copies toutes les données de l'ancienne table. À cause de l'index UNIQUE tu ne pourras pas insérer deux fois le même CP. On utilise le mot-clé IGNORE pour indiquer à MySQL de continuer même en cas d'erreur (les doublons sont considérés comme une erreur)

Par exemple:

Code : Tout sélectionner

CREATE TABLE villes2 LIKE villes; ALTER TABLE villes2 ADD UNIQUE CP (CP); INSERT IGNORE INTO villes2 SELECT * FROM villes; DROP TABLE villes; RENAME villes2 TO villes;
N'oublie pas de faire une sauvegarde au cas où ;)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

26 mars 2007, 23:22

Je ne remettrais pas en cause la technique dans ce qu'a dit Hubert mais seulement le fond : un CP n'est pas unique.

La commune de mes parents a le même code postal qu'un 20aine de commune ;)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

27 mars 2007, 01:53

C'est bien ce que je me demandais mais je n'arrivais pas à trouver d'exemple. J'ai au moins appris quelque chose aujourd'hui ;)

Avatar du membre
Administrateur PHPfrance
Administrateur PHPfrance | 13231 Messages

27 mars 2007, 08:30

:shock: Ouah, j'ai appris quelque chose à Hubert

S'en va se faire mousser 8-)
Connaître son ignorance est la meilleure part de la connaissance
Pour un code lisible : n'hésitez pas à sauter des lignes et indenter

twitter - site perso - Github - Zend Certified Engineer

chris801
Invité n'ayant pas de compte PHPfrance

27 mars 2007, 12:31

bien sur qu'il y a des villes qui posaident le meme code postale, comme il peut y avoir des villes du meme nom dans différent département.

ici il sagit de supprimer les villes qui on le meme code postale et le mem nom

ViPHP
ViPHP | 3607 Messages

27 mars 2007, 12:38

oui bon d'accord hubert s'est trompé sur le champ à rendre unique...
Mais il t'a donné la technique!
Du coup tu arrives à tes fins ?