我试图在数据库中找到具有其datetime列最低值的记录。简单来说,我想找到最早的记录。
我可以使用minimum来查找最低值,但这只会返回值本身,而不是整个记录。
我想我可以创建另一个查询,但我想知道是否有更有效的方法来执行此操作。
答案 0 :(得分:18)
这将有效:
earliest = Model.first(:order => 'column asc')
- Model 是模型类的名称,列是日期时间列的名称。它将生成此SQL语句:
SELECT * FROM `Model` ORDER BY column asc LIMIT 1
答案 1 :(得分:3)
Table.first(:order => 'created_on')
答案 2 :(得分:2)
@Ravenstine从rails 3开始,以下是正确的语法
earliest = Model.order('column asc').first
答案 3 :(得分:0)
我不确定RoR,但使用SQL,您只需按日期时间字段对查询结果进行排序,并将结果数限制为1.
SQL:
SELECT field1,field2,... FROM table ORDER BY datefield LIMIT 1;
或者也许在Ruby中(不确定):
table.find(:all, :limit => 1, :order => 'datefield.asc')