在 MySQL 中从多列中选择不同的值
使用数据库时,通常需要从多列中检索唯一的值组合。但是,使用 DISTINCT 关键字可能并不总是能产生所需的结果。本文探讨了从 MySQL 数据库中的两列中选择不同值的另一种方法。
考虑下表"foo_bar":
foo | bar |
---|---|
a | c |
c | f |
d | a |
c | 一个 |
f | c |
a | c |
d | 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 |
同时此查询可确保仅返回每个唯一值组合的一个实例,但它不会消除两列中交换值的冗余。例如,“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 子句将所有重复行合并为一行,有效地消除了重复并提供了来自 foo 和 bar 列的真正不同的值组合。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3