2013-10-04 127 views
2

我有一個表Rails按特定順序按多個值激活查詢順序?

Roles(id int,,name vachar(50),role enum(CAD,CA,CM,CV)) 

我想選擇數據的順序按特定的順序具體數值。 我主動型查詢:role.order( '角色ASC'),那麼結果:

1 name1 CAD 
2 name2 CA 
3 name2 CM 

但是我要像結果:

1 name1 CAD 
2 name2 CM 
3 name2 CA 

誰能幫助我? 在此先感謝

回答

2

的便攜式解決方案將是您要使用CASE語句作爲內嵌地圖BY:

query.order(%q{ 
    case role 
    when 'CAD' then 1 
    when 'CM' then 2 
    when 'CA' then 3 
    end 
}) 

請記住,你可以爲了通過任何你想要的表達和肯定CASE是SQL中的表達式。

+0

太棒了,非常感謝 – chinh