1

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

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

我想得到这样的东西:

colors
------
red
green
blue

或者

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

1 回答 1

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

于 2013-06-30T20:04:35.667 回答