2013-06-30 61 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