【发布时间】:2013-09-24 12:44:39
【问题描述】:
我的事件表中的一列包含一列,其值为“保留”、“重要”、“待定”等。我想将查询结果返回给客户端并按此列排序,但我不想按字母顺序排序。 “重要”事件应该是第一个,“待定”第二个,等等。更重要的是,我想将整数排序值返回给客户端。
@work = Transaction.
joins( :events ).
where( store_id: params[:work_id] ).
where( status: 'Open' )
【问题讨论】:
-
这个栏目一定要加吗?你不能改用一些自定义排序算法吗?
-
我更喜欢避免添加列。我需要的数据作为字符串存储在“状态”列中。 MySQL FIELD 函数是我的首选排序。
-
MySQL 有一个内置的
CASE语句,因此您可以使用它创建一个简单的函数,并ORDER BY生成计算字段。您能否展示按现有列排序的当前 Ruby 代码?不了解您是如何运行 SQL 的,很难给您一个 Ruby 答案。 -
目前,排序是按操作字段内容的字母顺序。按排序不是我想要的。也许这是提出问题的更好方法?
-
是的,有一个更好的方法来问这个问题:将你的 Ruby 代码放入问题中。排序错误并不重要。如果太长,请尝试仅添加显着部分。当我们可以看到当前代码的结构时,引导您朝着正确的方向前进会容易得多。