列a,b并c包含一些相同性质的值.我需要选择所有唯一值.如果我只有一个列,我会使用类似的东西
a从mytableORDER BY中选择DISTINCT a;
但我需要对待a,b并将c列作为一个,并获得它们之间发生的所有独特值.
例如,让这是一个CSV表示mytable,第一行命名列:
a, b, c
1, 2, 3
1, 3, 4
5, 7, 1
Run Code Online (Sandbox Code Playgroud)
查询的结果是:
1
2
3
4
5
7
Run Code Online (Sandbox Code Playgroud)
更新:我不明白为什么你们所有人都建议额外包装它SELECT?在我看来,答案是
(SELECT `a` AS `result` FROM `mytable`)
UNION (SELECT `b` FROM `mytable`)
UNION (SELECT `c` FROM `mytable`)
ORDER BY `result`;
Run Code Online (Sandbox Code Playgroud)
不是吗?
抱歉,我想念你的问题.这是更新的查询.
select a from my table
UNION
select b from my table
UNION
select c from my table
Run Code Online (Sandbox Code Playgroud)
那么你想要一个列都具有来自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
Run Code Online (Sandbox Code Playgroud)
工作实例
编辑要求更改后... ...有你有order by和limit你的要求.当然,在这个例子中你只能得到5条记录