utilisation phpmyadmin, plus de doublons

Eléphanteau du PHP | 44 Messages

07 févr. 2007, 20:02

bonjour j'ai une table avec environ 300 000 inscrits...
il y a des doublons en pagaille...
comment puis je faire pour les supprimer ?

y a t'il une commande dans phpMyAdmin ?
ou y a t'il un fonction php qui puisse traiter autant de données ?

merci bcp

Mammouth du PHP | 19672 Messages

07 févr. 2007, 21:07

Une fonction non, mais une idée :
crée une table temporaire semblable à l'originale; ensuite, fais une requête avec un INSERT ... SELECT DISTINCT() pour isoler les données sans doublons depuis la table originale pour peupler la table temporaire.

Ensuite, vide la table originale, et transfère le contenu de la table temporaire vers l'originale avant de supprimer la temporaire.
Codez en pensant que celui qui maintiendra votre code est un psychopathe qui connait votre adresse :axe:

Eléphanteau du PHP | 44 Messages

07 févr. 2007, 22:21

hum,
j'avais pensez à ça...

mais... sur 300000 entrées... c pas trop gros a gerer pour php ?
merci

Eléphant du PHP | 259 Messages

07 févr. 2007, 22:37

hello,

tu peux essayer d'ajouter une contrainte d'unicité sur ta table. c'est bien bourrin mais ca devrait faire un grand nettoyage.

ViPHP
ViPHP | 1961 Messages

07 févr. 2007, 22:41

Bonjour,

phpMyAdmin te permet de faire du SQL directement, fait-le donc en SQL.

Ce type de manipulations doit être fait sous contrôle, s'assurer que tout est correct avant de décider de supprimer les données d'une table.

D'un autre coté, n'oublie pas la remarque de Jules Petibidon une fois que te données seront correctes dans ta base.

P,S. :
300.000 Lignes pour MySQL c'est au grand maximum quelques secondes de traitement.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphanteau du PHP | 44 Messages

07 févr. 2007, 22:55

merci bcp pour votre aide je vais m'y coller ce soir ;)

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

08 févr. 2007, 09:20

hello,

tu peux essayer d'ajouter une contrainte d'unicité sur ta table. c'est bien bourrin mais ca devrait faire un grand nettoyage.
J'ai jamais essayé avec mysql, mais normalement, si tu essaye d'ajouter la contrainte d'unicité "après", les autres sgbd t'envoient promener en te disant qu'ils ne peuvent pas le faire car certains enregistrements existent en double. C'est à toi de faire le ménage au préalable :)

Par contre effectivement, un INSERT FROM SELECT vers une autre table, ça se fait très bien ;)
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...