mySQL - 在查询中为单个名称添加颜色

时间:2014-12-04 15:08:47

标签: mysql

我在PHYSICIANS中的表格mySQL包含Physicians的名称。

我想asign specific colors给这些医生。

我想让这个动态,因为我将为多个数据库执行此操作,医生名称也不同,医生的数量也各不相同。

我不知道手动输入医生名称并为其指定颜色或代码下方的任何其他方式。 有没有人知道其他任何方式?

这些是我想要使用的颜色:

#FF0000,#800000,#FFFF00,#808000,#00FF00,#008000,#00FFFF,#008080,#0000FF,#000080,#FF00FF,#800080

SELECT PHYS_ID, color
from
(
    Select PHYS_ID
    From PHYSICIANS
    Where PHYS_ID != 0
    Order By PHYS_ID
) Physicians,

(
    SELECT '#FF0000' as color
UNION
    SELECT '#FFFF00'
UNION   
    SELECT '#808000'
UNION   
    SELECT '#00FF00'
UNION   
    SELECT '#008000'
UNION   
    SELECT '#00FFFF'
UNION   
    SELECT '#0000FF'
UNION   
    SELECT '#000080'
UNION   
    SELECT '#FF00FF'
UNION   
    SELECT '#800080'
    FROM DUAL
) colors

1 个答案:

答案 0 :(得分:1)

好的,如果您无法修改任何内容,那么您可以尝试使用ELT()

之类的内容
SELECT PHYS_ID, ELT(MOD(PHYS_ID, N)+1, '#color1', '#color2', ...., '#colorN')
                                 ^----------------------------------------^

基本上,取医生的身份证,以你拥有的颜色数量为模。例如适用于5种颜色:

id 3 mod 5 -> 3
id 30 mod 5 -> 0
id 31 mod 5 -> 1

ELT(3 + 1, ...) -> color4
ELT(0 + 1, ...) -> color1
ELT(1 + 1, ...) -> color2