MySQL:按字母顺序在多个列中获取唯一值

如果我的表看起来像这样:

id | colA   | colB | colC
===========================
1  | red    | blue | yellow
2  | orange | red  | red
3  | orange | blue | cyan

我运行什么SELECT查询,以便返回的结果是:

蓝色,青色,橙色,红色,黄色

基本上,我想在多个列中提取不同值的集合列表,并按字母顺序返回它们.

我不关心性能优化,因为结果被解析为将用作缓存的XML文件(数据库几乎不更新).所以即使是肮脏的解决方案也没关系.

谢谢你的帮助!

最佳答案

(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

相关文章

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注