從MySQL 中的多個欄位中選擇不同的值
使用資料庫時,通常需要從多個欄位中擷取唯一的值組合。但是,使用 DISTINCT 關鍵字可能無法總是產生所需的結果。本文探討了從 MySQL 資料庫中的兩列中選擇不同值的另一種方法。
考慮下面名為「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 |
雖然此查詢確保僅傳回每個唯一值組合的一個實例,但它並不能消除值的冗餘在兩列中交換。例如,「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子句將所有重複行合併為一行,有效消除重複並提供真正不同的值組合foo 和bar 列。
以上是如何從 MySQL 中的多個欄位中選擇不同的值組合?的詳細內容。更多資訊請關注PHP中文網其他相關文章!