首页 > 解决方案 > 使用 Eloquent 选择每组结果中的最后一行

问题描述

我有以下Example模型数据:

id | object_id | value | updated_at
------------------------------------------------------
 1 |         1 |   200 | 2021-04-19 01:00:00
 2 |         2 |  1200 | 2021-04-08 01:00:00
 3 |         3 |  9000 | 2021-04-07 01:00:00
 4 |         1 |   100 | 2021-04-10 01:00:00
 5 |         2 |   900 | 2021-04-13 01:00:00
 6 |         3 |  8000 | 2021-04-12 01:00:00

我想获取按 object_id 分组的最新更新行,例如:

id | object_id | value | updated_at
------------------------------------------------------
 1 |         1 |   200 | 2021-04-19 01:00:00
 5 |         2 |   900 | 2021-04-13 01:00:00
 6 |         3 |  8000 | 2021-04-12 01:00:00

如何使用 Eloquent 实现该结果?

标签: laraveleloquent

解决方案


你试试?

$users = User::orderBy('updated_at','DESC')
            ->groupBy('object_id')
            ->get();

推荐阅读