MySQL の複数の列から個別の値を選択する
データベースを操作する場合、多くの場合、複数の列から値の一意の組み合わせを取得する必要があります。ただし、DISTINCT キーワードを使用しても、必ずしも望ましい結果が得られるとは限りません。この記事では、MySQL データベースの 2 つの列から個別の値を選択する別のアプローチについて説明します。
次の「foo_bar」という名前のテーブルを考えてみましょう:
foo | バー |
---|---|
a | c |
c | f |
d | a |
c | a |
f | c |
a | c |
d | a |
a | c |
c | a |
f | c |
次の SQL ステートメントを使用してこのテーブルをクエリします:
SELECT DISTINCT foo, bar FROM foo_bar;
は次の結果を生成します:
foo | bar |
---|---|
a | c |
c | f |
d | a |
c | a |
f | c |
このクエリでは、各一意の値の組み合わせのインスタンスが 1 つだけ返されることが保証されますが、2 つの列で値が交換される冗長性は排除されません。たとえば、「a c」と「c a」はどちらも異なる組み合わせですが、同じデータを参照します。
この問題に対処するには、代わりに GROUP BY 句を使用できます。
SELECT foo, bar FROM foo_bar GROUP BY foo, bar;
このクエリは次の結果を返します:
foo | bar |
---|---|
a | c |
c | f |
d | a |
ご覧のとおり、GROUP BY 句は重複するすべての行を効果的に 1 つの行に結合します。繰り返しを排除し、foo 列と bar 列の両方から真に異なる値の組み合わせを提供します。
免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。
Copyright© 2022 湘ICP备2022001581号-3