MySQL の複数の列から個別の値を選択する
データベースを操作する場合、多くの場合、複数の列から値の一意の組み合わせを取得する必要があります。ただし、DISTINCT キーワードを使用しても、必ずしも望ましい結果が得られるとは限りません。この記事では、MySQL データベースの 2 つの列から個別の値を選択する別のアプローチについて説明します。
「foo_bar」という名前の次のテーブルについて考えてみましょう。
foo | bar |
---|---|
a | c |
c | f |
d | a |
c | a |
f | c |
a | c |
d | a |
a | c |
c | a |
f | c |
次の SQL ステートメントでこのテーブルをクエリします。 :
<code class="sql">SELECT DISTINCT foo, bar FROM foo_bar;</code>
は次の結果を生成します:
foo | bar |
---|---|
a | c |
c | f |
d | a |
c | a |
f | c |
このクエリでは、各一意の値の組み合わせのインスタンスが 1 つだけ返されることが保証されますが、値が含まれる冗長性は排除されません。 2 つの列で交換されます。たとえば、「a c」と「c a」はどちらも異なる組み合わせですが、同じデータを参照します。
この問題に対処するには、代わりに GROUP BY 句を使用できます。
<code class="sql">SELECT foo, bar FROM foo_bar GROUP BY foo, bar;</code>
このクエリは次の結果を返します:
foo | bar |
---|---|
a | c |
c | f |
d | a |
ご覧のとおり、GROUP BY 句はすべての重複行を 1 つの行に結合し、効果的に繰り返しを排除し、両方の行から真に異なる値の組み合わせを提供します。 foo 列と bar 列。
以上がMySQL の複数の列から異なる値の組み合わせを選択する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。