【发布时间】:2015-04-21 14:43:35
【问题描述】:
我有一个数组priority = ['HIGH', 'MEDIUM', 'LOW'],用于设置“紧急”数据库列。我想检索按优先级排序的数据,尽管应用 Task.order(:urgency) 按字母顺序返回结果(即 HIGH、LOW、MEDIUM)。
我正在使用 PostgreSQL 作为数据库。
我(显然)希望这些从高优先级返回到低优先级。有没有一种简单的方法来实现这一点,也许使用数组中值的位置?
【问题讨论】:
-
您使用的是什么数据库系统? MySQL ? PostgreSQL ?还有什么?
-
PostgreSQL - 对不起,应该提到。马上更新!
-
这并不能直接回答您的订购问题,但对于“紧急”或“状态”,如果您使用的是 Rails 4.1+,请考虑使用 Active Record 枚举(Release Notes 和 Documentation) .优点是它免费为您提供范围,您可以按照您需要的顺序放置“紧急度”(实际的 db 列是一个整数) - 您可以根据它进行排序,它的执行速度应该比 SQL 快得多案例声明。如果需要,我可以提供一个完整的例子。
标签: sql ruby-on-rails postgresql