ruby-on-rails - 如何按枚举和其他列自定义顺序
问题描述
我正在尝试按两列排序。第一列是枚举字段(状态),第二列是 updated_at 列。
我目前正在按枚举排序,如下所示:
Car.order("
(status = 1 DESC, updated_at DESC),
status = 2 DESC,
status = 3 DESC,
status = 4 DESC,
status = 5 DESC,
status = 6 DESC,
status = 7 DESC"
)
如果有 3 辆汽车的状态为 1,我希望这 3 辆汽车通过 updated_at 列降序排序。
解决方案
根据评论。
您可以将 SQL 语句传递ORDER BY
给order
查询方法:
Car.order(
'status DESC,
updated_at DESC,
CASE WHEN status = 7 THEN 0
WHEN status = 4 THEN 1
...
END'
)
推荐阅读
- javascript - 如何异步获取语言环境(nuxt.js + i18n + axios)
- android - 为什么 UI 有时无法通过数据绑定在 recyclerview 中更新?
- r - 使用 purrr 将自定义函数重复应用于同一数据帧
- python-3.x - 这个算法是 O(1) 还是 O(n) 空间复杂度
- c# - 使用 BindableLayout 中的命令从 2 个标签发送文本值
- python - 在 python 中使用 selenium send_keys 复制文本
- azure - Azure Powershell cmd-let - Get-AzureRmLog 不显示“Microsoft.Authorization/”日志
- javascript - 将python中的嵌套排序循环转换为javascript
- node.js - 在 Sequelize.js 中为多对多关系添加默认角色
- ios - 使用 iOS 模拟器进行 App Preview 录制会导致 NSPOSIXErrorDomain 代码为 22 ERROR