Laravel获得每列的最高价值

时间:2017-12-17 11:07:20

标签: php mysql laravel laravel-5

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

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

我尝试了以下代码。

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

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

  

在字符串

上调用成员函数max()

2 个答案:

答案 0 :(得分: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

中获取更多详情

答案 1 :(得分:0)

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

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

检查此laravel docs

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