MySQL ENUM列类型

时间:2013-06-30 18:41:13

标签: mysql sql

我可以通过一个查询获得枚举列类型的所有可能性吗?

例如,我的列颜色可能是“红色”,“绿色”,“蓝色”。

我想得到这样的东西:

colors
------
red
green
blue

colors
------
red, green, blue

1 个答案:

答案 0 :(得分:2)

如果您想获得此列中的实际值,请尝试以下操作:

SELECT DISTINCT color FROM colorenum

如果要获取此列允许的所有值,请尝试:

SHOW COLUMNS FROM colorenum WHERE Field = 'color'

请参阅此处的示例:http://www.sqlfiddle.com/#!2/d27350/1

SELECT COLUMN_TYPE 
FROM information_schema.COLUMNS 
WHERE TABLE_NAME='colorenum' AND COLUMN_NAME = 'COLOR';

例如,这个将返回enum('red','green','blue','white','yellow','black')

SELECT REPLACE(
  (REPLACE(
    (REPLACE(
      (REPLACE(
        (SELECT COLUMN_TYPE 
         FROM information_schema.COLUMNS 
         WHERE TABLE_NAME='colorenum' AND COLUMN_NAME = 'COLOR')
      , 'enum(', '')),
    ')', '')),
  '\'', '')),
',', ', ');

例如,这个将返回red, green, blue, white, yellow, black