Active Record 操作指南
1. Active Record 查询方法
Active Record 提供了丰富的查询方法,以下为大家详细介绍:
- order(*clauses) :该方法用于指定查询结果的排序方式,可以接收一个或多个符号(代表列名)或一段 SQL 片段。
- 示例:
Timesheet.order('created_at desc')
Timesheet.order(:created_at)
- 若未指定升序或降序选项,SQL 默认采用升序排序。若要随机排序,可根据不同数据库使用不同方法:
# MySQL
Timesheet.order('RAND()')
# Postgres
Timesheet.order('RANDOM()')
# Microsoft SQL Server
Timesheet.order('NEWID()')
# Oracle
Timesheet.order('dbms_random.value').first
- 不过,对大型数据集进行随机排序在大多数数据库中性能较差,尤其是 MySQL。也可以通过 Ruby 生成随机偏移量来获取随机记录:
Timsheet.limit(1).offset(rand(Timesheet.count)).firs
超级会员免费看
订阅专栏 解锁全文
6

被折叠的 条评论
为什么被折叠?



