每天我插入10行,这样整周就会生成70行,然后旋转并删除最旧的行等等,直到我去...
现在我想要显示它们,而不是全部,但只显示其中的10个,这是最新的!这是created_at的最小值。
如何编写where子句来查询?
Inventory::where(min(created_at))->get()
//不起作用!
感谢。
答案 0 :(得分:2)
这将为您提供最新的10行:
$result = Inventory::orderBy('created_at', 'desc')->take(10)->get();
这是最老的10行:
$result = Inventory::orderBy('created_at', 'asc')->take(10)->get();
要使用MIN()
,您需要一个首先获得最低created_at
的子查询,然后在where语句中使用该子查询。因为你知道你总是插入10行排序,限制是最简单的方法。
如果您不能依赖每个日期的10行,则可以使用MIN
,如下所示:
$result = Inventory::where('created_at', function($q){
$q->selectRaw('MIN(created_at)')
->from('inventories');
})->get();