列 a
、b
和 c
包含一些相同性质的值。我需要选择所有唯一值。如果我只有一列,我会使用类似
SELECT DISTINCT a
FROM mytable
ORDER BY a
;
但我需要将 a
、b
和 c
列视为一个列,并获取其中出现的所有唯一值。
例如,假设这是 mytable
的 CSV 表示,第一行命名列:
a, b, c
1, 2, 3
1, 3, 4
5, 7, 1
查询的结果是:
1
2
3
4
5
7
更新:我不明白为什么你们所有人都建议将它包装在一个额外的 SELECT
中?在我看来答案是
(SELECT `a` AS `result` FROM `mytable`)
UNION (SELECT `b` FROM `mytable`)
UNION (SELECT `c` FROM `mytable`)
ORDER BY `result`;
不是吗?
最佳答案
所以您想要一列都包含 a、b 和 c 中的唯一值?试试这个:
(select a as yourField from d1)
union
(select b from d2)
union
(select c from d3)
order by yourField desc
limit 5
工作 example
在需求改变后编辑...你有你要求的order by
和limit
。当然,在这个例子中你只会得到 5 条记录
关于mysql - 如何在 MySQL 中将多个列作为一个列来处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9220979/