如何从 MySQL 中的多个列中选择不同的值
使用数据库时,通常需要从多个列中检索唯一或不同的值列。但是,使用简单的 SELECT DISTINCT 子句可能并不总能产生所需的结果。
问题
考虑以下场景:
Table: foo_bar foo | bar --- | --- a | c c | f d | a c | a f | c a | c d | a a | c c | a f | c
运行查询 SELECT DISTINCT foo, bar FROM foo_bar 将返回以下结果:
foo | bar --- | --- a | c c | f d | a c | a f | c
请注意,虽然每列的值不同,但对本身却不同。例如,a 和 c 对出现两次,只是顺序不同。
解决方案:使用 GROUP BY
要获得真正不同的值对,您可以可以利用 GROUP BY 子句:
SELECT foo, bar FROM foo_bar GROUP BY foo, bar
GROUP BY 子句指示数据库根据指定的列对结果进行分组。在这种情况下,它将按 foo 和 bar 列对行进行分组。
因此,查询将仅返回唯一的值对:
foo | bar --- | --- a | c c | f d | a
此方法可确保您仅从多个指定列中检索唯一的值组合。
以上是如何从 MySQL 中的多个列中获取真正不同的值?的详细内容。更多信息请关注PHP中文网其他相关文章!