Sélection de valeurs distinctes dans deux colonnes dans MySQL : surmonter les entrées en double
Dans la gestion de bases de données MySQL, distinguer les valeurs en double dans plusieurs colonnes peut présenter un défi. Considérons le scénario suivant :
Question :
Une table de base de données nommée « foo » contient deux colonnes, « foo » et « bar », avec les données suivantes :
foo | bar |
---|---|
a | c |
c | f |
d | a |
c | a |
f | c |
a | c |
d | a |
a | c |
c | a |
f | c |
Lors de l'exécution de la requête "SELECT DISTINCT foo, bar FROM foo", les résultats suivants sont obtenus :
foo | bar |
---|---|
a | c |
c | f |
d | a |
c | a |
f | c |
Cependant, ces résultats incluent des appariements répétés de 'foo' et ' valeurs de barre, telles que « a » et « c », qui apparaissent dans des ordres différents. L'objectif est de sélectionner uniquement des valeurs distinctes dans les deux colonnes, en éliminant ces doublons.
Réponse :
Pour résoudre ce problème, MySQL fournit la clause 'GROUP BY', qui regroupe les lignes en fonction des colonnes spécifiées et sélectionne une seule ligne distincte pour chaque groupe. En utilisant cette clause, nous pouvons modifier la requête comme suit :
SELECT foo, bar FROM foo GROUP BY foo, bar;
Cette requête modifiée produira les résultats suivants :
foo | bar |
---|---|
a | c |
c | f |
d | a |
En regroupant les lignes à la fois par 'foo' et ' bar', la requête garantit que chaque combinaison distincte de valeurs n'est représentée qu'une seule fois dans les résultats, quel que soit l'ordre dans lequel elles apparaissent.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!