2013-06-30 64 views
1

可以通过一个查询获取enum列类型的所有可能性吗?MySQL ENUM列类型

例如,我有可能性'红色','绿色','蓝色'的列颜色。

我想是这样的:

colors 
------ 
red 
green 
blue 

colors 
------ 
red, green, blue 
+0

可能的重复[如何获得枚举可能的值在MySQL数据库?](http://stackoverflow.com/questions/2350052/how-can-i-get-enum-possible-values-in-a -mysql-database) – ApplePie

+0

对我来说没有有用的解决方案 – Vlado

回答

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例如。

+0

最后一个最适合我使用。谢谢。 – Vlado