如果我的表格如下:
id | colA | colB | colC
===========================
1 | red | blue | yellow
2 | orange | red | red
3 | orange | blue | cyan
我运行什么SELECT查询,以便返回的结果是:
蓝色,青色,橙色,红色,黄色
基本上,我想在多列中提取不同值的集合列表,并按字母顺序返回。
我不关心性能优化,因为结果被解析为将用作缓存的XML文件(数据库几乎不更新)。所以即使是肮脏的解决方案也没关系。
感谢您的帮助!
答案 0 :(得分:8)
(SELECT DISTINCT colA AS color FROM table) UNION
(SELECT DISTINCT colB AS color FROM table) UNION
(SELECT DISTINCT colC AS color FROM table)
ORDER BY color
答案 1 :(得分:3)
按照正常方式行事:
create table new_tbl(col varchar(50));
insert into new_tbl(col)
select cola from tbl
union
select colb from tbl
union
select colc from tbl
然后排序:
select col from new_tbl order by col
或者,如果您不想要登台表,只需执行:
select cola as col from tbl
union
select colb from tbl
union
select colc from tbl
order by col
注意: UNION会自动删除所有重复项,如果要包含重复项,请将 UNION 更改为 UNION ALL