Page 1 sur 1

Select distinct

Posté : 24 août 2005, 10:34
par jujub
Salut
dans le but de créer une table temporaire avec l'ensemble des donnée de ma table initiale, il me faudrai supprimmer les doublons mais sur certain champs de ma première table ...

Comment procéder

Merci :wink:

Posté : 24 août 2005, 11:12
par smarties
Il faudrait que tu donnes plus de détails sur ta requete pour que l'on puisse t'aider et te proposer une solution.

Posté : 24 août 2005, 11:16
par jujub
il me faudrai faire un select * d'abord puis eliminer les doublons sur trois champs de cette même table :oops:

puis cette table sera sauvegarder dans une table temporaire puis réinjeté dans la table initiale

Posté : 24 août 2005, 12:22
par mere-teresa
et le distinct ne fonctionne pas ?

Tu peux mettre tes requêtes en modifiant les vrais noms de champs et les variables :)

Re: Select distinct - doublons

Posté : 24 août 2005, 13:33
par Ripat
Salut
dans le but de créer une table temporaire avec l'ensemble des donnée de ma table initiale, il me faudrai supprimmer les doublons mais sur certain champs de ma première table ...

Comment procéder

Merci :wink:
La méthode la plus simple pour supprimer des doublons est de créer un index composite unique, sur les colonnes dont tu veux éviter les doublons.

Exemple: dans ta table ma_table tu veux supprimer toutes les lignes qui présentent les même valeurs pour les colonnes 1, 3 et 5.

Code : Tout sélectionner

#création de l'index unique (IGNORE, pour ignorer les erreurs, est indispensable) ALTER IGNORE TABLE ma_table ADD UNIQUE mon_index (col1, col3, col5) # supression de l'index si superflu ALTER TABLE ma_table DROP INDEX mon_index
Pas besoin de table temporaire. Mysql fait le travail tout seul mais attention, pas de retour en arrière possible! Songe à faire une copie avant.

Posté : 24 août 2005, 13:49
par jujub
Je vais essayé ça........

et pour la sauvegarde.....tu fais comment?

Posté : 24 août 2005, 14:30
par Ripat
et pour la sauvegarde.....tu fais comment?
Plusieurs manières de faire. La plus simple:

Code : Tout sélectionner

CREATE TABLE table_backup SELECT * FROM ta_table