我有一個選擇,我在其中做「group by」。其中一列是一個枚舉,我想爲每個組選擇最大的值(即枚舉中索引最大的那個)。我可以做如何獲得索引中的枚舉元素
select MAX(enum_column+0) as enum_index
獲得該組中最大的索引,但我又怎麼能枚舉指數回枚舉項?
例: 說我有一個表「兵」有三列:
"id" - soldier's ID
"name" is the soldier's first name (a varchar field).
"rank" is the soldier's rank, and it is an enum:
{'private','sergent'...,'lieutenant' etc.}
現在假設我要找到每個名字,這個名字在最高等級的人有。 我可以這樣做:
select MAX(rank+0) as enum_index,name from soldiers group by name
但是,這將使我在枚舉領域的最大元素的索引,而不是元素的名稱。即它會給我:
1 | john
2 | bob
,我想
'private' | john
'sergent' | bob
我怎樣才能達到預期的效果?
您不知道rank是如何變成字符串/ varchar rank_name值的數字。 – 2009-09-09 14:26:02
我不知道我理解你,但如果你的意思是我沒有解釋如何從字符串更改爲int,那是因爲它是一個ENUM類型... – olamundo 2009-09-09 16:34:22