从 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中文网其他相关文章!