繁体   English   中英

如何使用Eloquent显示Laravel列的最大值?

[英]How do I display the highest value of the column in Laravel using Eloquent?

我正在尝试显示显示每个名称的最高版本的行。 但是,我在如何将原始 php 代码转换为 Eloquent ORM 时遇到问题。我们将不胜感激。

$sql="SELECT * FROM images WHERE (Name,Version) IN (SELECT Name, MAX(Version) FROM images GROUP by Name)";

编辑:

这是我到目前为止尝试过的代码,它显示了唯一的名称,但没有显示该名称的最高版本。

$items=Item::orderBy("version","DESC")->groupBy('model_name')->latest()->paginate(5);

您可以尝试:

Images::max('Version');

您可以在此处找到有关聚合的更多信息

Image::all()
->groupBy('model_name')
->map(function($group) { return $group->sortByDesc('version')->first(); });

图片::全部()

你知道它的作用。

->groupBy('model_name')

model_name分组。 将字段名称替换为您要对它们进行分组的字段。 所以有多少模型,就有多少组。

->map(function($group) { return $group->sortByDesc('version')->first(); });

在每个组中,为了获得item (不是items )最新版本,我按版本降序对它们进行排序。 这样最新版本的项目将位于顶部。 然后拿去。


如果你想要多个最新版本的项目,适应。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM