mysql - 如何在 MySQL 中将多个列作为一个列来处理?

标签 mysql sql select

abc 包含一些相同性质的值。我需要选择所有唯一值。如果我只有一列,我会使用类似

SELECT DISTINCT a FROM mytable ORDER BY a;

但我需要将 abc 列视为一个列,并获取其中出现的所有唯一值。

例如,假设这是 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 bylimit。当然,在这个例子中你只会得到 5 条记录

关于mysql - 如何在 MySQL 中将多个列作为一个列来处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9220979/

相关文章:

mysql - 我必须在生产中使用 root 吗

java - 如何将带有 mongoDB 项目的 spring 4 + Hibernate 切换到 MySQL?

sql - Pandas 与 SQL 速度

SQL 列合并和聚合函数

php - 从 HTMl 表单的动态选择选项中删除重复数据

php - 使用php列出mysql中的记录但只出现一条记录?

php - 获取 ID 连接到逗号分隔列表的所有匹配记录

sql - SHOW CREATE TABLE 中的 'KEY' 是否意味着列已索引?

MySQL Select 语句 - 来自其他表的值名称

LINQ 从动态表名字符串中选择