我有一个表,该表有4列,每列都有十六进制值的颜色(请参见下面的捕获)
color_1 | color_2 | color_3 | color_4 |
#a0a0a0 | #f0f0f0 | #404040 | #e0e0e0 |
#e0e0e0 | #f0f0f0 | #c0c0c0 | #e06080 |
#e0e0e0 | #f0f0f1 | #c0c0c0 | #e06082 |
#e0e0e0 | #f0f0f0 | #c0c0c0 | #e06080 |
我想查询整个表以保存唯一的颜色,我做了如下
SELECT DISTINCT color_1, color_2, color_3, color_4
FROM `wp_images`
我得到的结果不是我期望的(请参见下面的捕获)
color_1 | color_2 | color_3 | color_4 |
#a0a0a0 | #f0f0f0 | #404040 | #e0e0e0 |
#e0e0e0 | #f0f0f0 | #c0c0c0 | #e06080 |
#e0e0e0 | #f0f0f1 | #c0c0c0 | #e06082 |
#e0e0e0 | #f0f0f0 | #c0c0c0 | #e06080 |
我期望的结果是:
#a0a0a0 , #f0f0f0 , #404040 , #e0e0e0 , #f0f0f1 , #c0c0c0 , #e06080 , #e06082
有什么帮助吗?
谢谢
最佳答案
试试这个:
SELECT DISTINCT color
FROM
(
SELECT color_1 as color FROM `wp_images`
UNION
SELECT color_2 as color FROM `wp_images`
UNION
SELECT color_3 as color FROM `wp_images`
UNION
SELECT color_4 as color FROM `wp_images`
)
内部的
SELECT
从表(color_1
,color_2
,color_3
,color_4
)中获取每一列的列表,并将它们合并在一个唯一的表下,其中一列称为color
。然后查询该表,其中包含4列中的所有颜色,将DISTINCT
应用于它们。