Maison >base de données >tutoriel mysql >Comment obtenir des valeurs vraiment distinctes à partir de plusieurs colonnes dans MySQL ?

Comment obtenir des valeurs vraiment distinctes à partir de plusieurs colonnes dans MySQL ?

Linda Hamilton
Linda Hamiltonoriginal
2024-10-29 11:05:02489parcourir

How to Get Truly Distinct Values from Multiple Columns in MySQL?

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn