laravel 我可以从数据库记录中得到最后3个数据吗?

kjthegm6  于 2022-12-01  发布在  其他
关注(0)|答案(2)|浏览(171)

我在数据库记录中有6个数据,但我想获取最后3个数据
这是我数据:
| 条件标识|条件名称|
| - -|- -|
| 一个|A级|
| 2个|乙|
| 三个|C语言|
| 四个|D级|
| 五个|E级|
| 六个|F级|
我已经尝试了这个代码:

$criteria= criteria::latest()->take(3)->get();

但我得到了这样的数据:
| 标准标识|条件名称|
| - -|- -|
| 六个|F级|
| 一个|A级|
| 2个|乙|
而且我也用orderby试了一下,结果是这样的:
| 条件标识|条件名称|
| - -|- -|
| 六个|F级|
| 五个|E级|
| 四个|D级|
结果应该是这样的,我要这个结果:
| 条件标识|条件名称|
| - -|- -|
| 四个|D级|
| 五个|E级|
| 六个|F级|
我怎样才能得到像上次结果那样数据?

icnyk63a

icnyk63a1#

不用latest(),而是按降序排序,只要你需要就行。

r8uurelv

r8uurelv2#

您的行需要一个created_at列才能使用latest(),但您现有的列也可以使用。或者,您可以对criteria_id列进行排序,然后取3。

Criteria::orderBy('criteria_id', 'desc')->take(3)->get();

编辑:刚刚看到了你的修改。只需执行上述操作,然后在集合中添加一个sortBy

Criteria::orderBy('criteria_id', 'desc')->take(3)->get()->sortBy('criteria_id');

相关问题