Comment sélectionner des valeurs distinctes à partir de plusieurs colonnes dans MySQL
Lorsque vous travaillez avec des bases de données, il est souvent nécessaire de récupérer des valeurs uniques ou distinctes à partir de plusieurs colonnes. Cependant, l'utilisation de la simple clause SELECT DISTINCT peut ne pas toujours donner les résultats souhaités.
Le problème
Considérez le scénario suivant :
Table: foo_bar foo | bar --- | --- a | c c | f d | a c | a f | c a | c d | a a | c c | a f | c
L'exécution de la requête SELECT DISTINCT foo, bar FROM foo_bar renverrait les résultats suivants :
foo | bar --- | --- a | c c | f d | a c | a f | c
Remarquez que même si les valeurs de chaque colonne sont distinctes, les paires elles-mêmes ne le sont pas. Par exemple, la paire a et c apparaît deux fois, juste dans un ordre différent.
La solution : utiliser GROUP BY
Pour obtenir des paires de valeurs vraiment distinctes, vous peut utiliser la clause GROUP BY :
SELECT foo, bar FROM foo_bar GROUP BY foo, bar
La clause GROUP BY demande à la base de données de regrouper les résultats en fonction des colonnes spécifiées. Dans ce cas, elle regroupera les lignes par colonnes foo et bar.
Par conséquent, la requête ne renverra que des paires de valeurs uniques :
foo | bar --- | --- a | c c | f d | a
Cette approche garantit que vous récupère uniquement les combinaisons uniques de valeurs des multiples colonnes spécifiées.
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!