ホームページ >データベース >mysql チュートリアル >MySQL の複数の列から真に異なる値を取得するにはどうすればよいですか?

MySQL の複数の列から真に異なる値を取得するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2024-10-29 11:05:02489ブラウズ

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

MySQL の複数の列から個別の値を選択する方法

データベースを操作する場合、多くの場合、複数の列から一意の値または個別の値を取得する必要があります。列。ただし、単純な SELECT DISTINCT 句を使用しても、常に望ましい結果が得られるとは限りません。

問題

次のシナリオを考えてみましょう:

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

クエリ SELECT DISTINCT foo, bar FROM foo_bar を実行すると、次の結果が返されます。

foo | bar
--- | ---
a   | c
c   | f
d   | a
c   | a
f   | c

各列の値は異なっていますが、ペア自体は異なっていることに注意してください。たとえば、a と c のペアは、順序が異なるだけで 2 回表示されます。

解決策: GROUP BY を使用する

真に異なる値のペアを取得するには、次のようにします。 GROUP BY 句を利用できます:

SELECT foo, bar FROM foo_bar GROUP BY foo, bar

GROUP BY 句は、指定された列に基づいて結果をグループ化するようにデータベースに指示します。この場合、foo 列と bar 列の両方で行がグループ化されます。

結果として、クエリは値の一意のペアのみを返します。

foo | bar
--- | ---
a   | c
c   | f
d   | a

このアプローチにより、次のことが保証されます。指定された複数の列から値の一意の組み合わせのみを取得します。

以上がMySQL の複数の列から真に異なる値を取得するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。