在Laravel中获取具有不同外国ID的列中的最大值

Posted

技术标签:

【中文标题】在Laravel中获取具有不同外国ID的列中的最大值【英文标题】:Get maximum values in column with diferents foreign ids in Laravel 【发布时间】:2020-04-10 10:25:39 【问题描述】:

我想从一个列中获取最大值,但是那些值对应两个不同的外来ID,所以我希望它返回每个外来ID的最大数。我不知道我是否必须使用max()... 目前我只是使用groupBy 和两个外国ID。

这里是 mysqlAdmin 中的表。我想为每个id_groupid_karatekas 获得最大的bid

这是我的代码:

public function soldKarateka()
    
        $response = array('code' => 400, 'error_msg' => []);
       self::getBidByKaratekaGroup($response);
       return response($response, $response['code']);
    


    private function getBidByKaratekaGroup( & $response)
        $bidsPerKarateka = DB::table('bids')
            ->groupBy('id_group','id_karatekas')
           ->get();
             $response = array('code' => 200, 'Karatekas order by group' => $bidsPerKarateka);
    

【问题讨论】:

获取最大值是什么意思?只有最大值,你的意思是按列排序 我已经更新了答案。请检查。 【参考方案1】:

您应该尝试以下代码来查找最大值。 如果您的表名是bids,则可以,否则根据您的表名更改名称。

DB::table('bids')
->select([DB::raw('MAX(bids.bid) AS maxbid'), 'bids.id_group', 'bids.id_karatekas'])
->groupBy('bids.id_group', 'bids.id_karatekas')
->get()->toArray();

【讨论】:

【参考方案2】:

你试过max函数吗?

我认为下面的 sn-p 会起作用

$data = DB::table('bids')
    ->select(DB::raw('MAX(bid) as bid'))
    ->groupBy('id_group', 'id_karatekas')->get();

【讨论】:

是的,但这不起作用,只是获得最大值,而不是每次出价都... 是的!这是!非常感谢!!

以上是关于在Laravel中获取具有不同外国ID的列中的最大值的主要内容,如果未能解决你的问题,请参考以下文章

具有共同 id 的组中具有最大天数的两个日期之间的差异

如何在具有相同 ID 的列中选择不同的值然后删除它们 PHP SQL Server

需要 SQL 在不同的列中查找具有重复值的记录

TSQL - 如何在另一列中提取具有最小值和最大值的列

Laravel - 在数据库的列中显示选定的 ID

MYSQL-命令用于具有相同id的列中的复制值