Laravel获得每列的最高价值

问题描述 投票:1回答:2

我正在使用Laravel 5.5,我想知道如何在一个查询中获得每列的最高价值?

这是可能的还是我们应该逐个查询?

我试过下面的代码。

DB::table('family')->max('children')->max('salary');

当我尝试DB::table('family')->max('children')时,效果很好。但是,当我尝试DB::table('family')->max('children')->max('salary')时,我得到以下错误

在字符串上调用成员函数max()

php mysql laravel laravel-5
2个回答
1
投票

您可以通过单个查询获得。

$result = DB::table("family as f")
->select([DB::raw('MAX(f.children) AS children_max'),DB::raw('MAX(f.salary) AS salary_max')])
->groupBy('f.id')
->first();

或使用单独的->max()方法。

$family = DB::table('family');
$max_children = $family->max('children');
$max_salary = $family->max('salary');

other answerLaravel Docs获取更多细节


0
投票

使用您的口才添加max()以获得每个列值的最大值。

ModelName::select(DB::raw('MAX(column1) AS colum1'),DB::raw('MAX(colum2) AS colum2'))->get();

检查这个laravel docs

编辑:您可以使用laravel中的查询构建器来执行此操作。

© www.soinside.com 2019 - 2024. All rights reserved.