2010-08-16 4 views
0

Je suis à la recherche d'un outil qui me permet de gérer facilement les doublons dans la base de données MySQL. Dans un sens, je ne veux pas rendre mes colonnes 'UNIQUE', mais je veux passer en revue les enregistrements qui ont exactement la même valeur dans une colonne.Utiliser phpmyadmin pour gérer les doublons

Ce serait bien si je pouvais créer une telle requête SQL qui montre seulement de tels enregistrements en utilisant l'interface habituelle.

Répondre

3

Pour obtenir des doublons, il suffit d'utiliser un autojointure sur la table:

select t1.id, t2.id, t1.value 
from table t1 
inner join table t2 on t1.value=t2.value 
where t1.id < t2.id 

le t1.id < t2.id fera en sorte que chaque double n'apparaître qu'une seule fois.

+0

Sournois, mais génial! Maintenant, je suis déchiré entre l'attribution de «réponse» à vous ou à hollsk! – qdot

3

devrait être possible de les sélectionner avec une requête:

select myColumn, count(myColumn) as myCount from myTable group by myColumn having myCount > 1 order by myCount; 
+0

Presque parfait! Pourriez-vous partager deux autres morceaux: 1) Obtenir de voir tous les enregistrements qui partagent la même valeur myColumn, au lieu de seulement le premier? 2) Arriver au groupe par une combinaison de colonnes? – qdot

+0

hm - le code ci-dessus doit renvoyer tous les doublons tels quels. Quel nombre compte() vous donnez? Regroupez également par des colonnes supplémentaires simplement en ajoutant un autre nom de colonne avec une virgule - 'groupe par myColumn, myOthercolumn ayant ...' – hollsk

0

Dans wimvds, répondez ci-dessus; phpMyAdmin affiche l'avertissement suivant:

La sélection actuelle ne contient pas de colonne unique. Les fonctions d'édition de grille, de case à cocher, d'édition, de copie et de suppression ne sont pas disponibles.

Pour activer modifier/copier/supprimer, la première ligne peut être modifiée soit:

select t1.id, t1.value 

ou

select t2.id, t2.value 

Par conséquent, vous voudrez peut-être utiliser la requête de wimvds pour examiner les doublons (peut-être le long avec d'autres champs), puis la deuxième requête pour modifier ou supprimer les enregistrements en double.

(Peut-être y a-t-il aussi un moyen de lister les doublons, dans les lignes adjacentes, et éditable?)