我可以通过一个查询获得枚举列类型的所有可能性吗?
例如,我的列颜色可能是“红色”,“绿色”,“蓝色”。
我想得到这样的东西:
colors
------
red
green
blue
或
colors
------
red, green, blue
答案 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
。