我有一张桌子
Roles(id int,,name vachar(50),role enum(CAD,CA,CM,CV ))
我希望选择按特定顺序按特定值排序的数据。 我的活动模型查询:role.order('role asc')然后是结果:
1 name1 CAD
2 name2 CA
3 name2 CM
但我希望结果如下:
1 name1 CAD
2 name2 CM
3 name2 CA
任何人都可以帮助我吗? 提前致谢
答案 0 :(得分:2)
便携式解决方案是在您的ORDER BY中使用CASE语句作为内联映射:
query.order(%q{
case role
when 'CAD' then 1
when 'CM' then 2
when 'CA' then 3
end
})
请记住,您可以对所需的任何表达式进行ORDER BY,CASE肯定是SQL中的表达式。