gpt4 book ai didi

php - Laravel 4 查询生成器 - groupBy 最大日期

转载 作者:可可西里 更新时间:2023-11-01 07:47:10 24 4
gpt4 key购买 nike

小查询问题,我有 table :

id    | user_id | paper_update
------------------------------
1 | 1 | 30-5-2011
2 | 2 | 30-5-2012
3 | 3 | 30-5-2012
4 | 1 | 30-5-2013
5 | 2 | 30-5-2013
6 | 3 | 30-5-2014
7 | 4 | 30-5-2014
8 | 5 | 30-5-2014
9 | 5 | 30-5-2015
10 | 5 | 30-5-2016
11 | 1 | 30-5-2010
-------------------------------

我要做的是只选择具有相同 user_id 的记录之间 paper_update 最大的记录,实际上我想按 分组>user_id 为了最大paper_update。所以对于这个表,它将返回这个:

id    | user_id | paper_update
------------------------------
4 | 1 | 30-5-2013
5 | 2 | 30-5-2013
6 | 3 | 30-5-2014
7 | 4 | 30-5-2014
10 | 5 | 30-5-2016
-------------------------------

最佳答案

这是在 laravel 中获取 groupBy 最大日期的最简单和最短的方法。按 user_id 分组获取具有最大日期的行。

       $rows = DB::table('papers')
->select(DB::raw('id, max(paper_update) as year,user_id'))
->groupBy('user_id')
//->orderBy('paper_update', 'desc')
->get();

这个 laravel 查询将创建一个像这样的 mysql 查询

select id, max(paper_update) as year from `papers` group by `user_id`;

输出将是

Array
(
[0] => stdClass Object
(
[id] => 4
[year] => 30-5-2013
[user_id] => 1
)

[1] => stdClass Object
(
[id] => 5
[year] => 30-5-2013
[user_id] => 2
)

[2] => stdClass Object
(
[id] => 6
[year] => 30-5-2014
[user_id] => 3
)

[3] => stdClass Object
(
[id] => 7
[year] => 30-5-2014
[user_id] => 4
)
[4] => stdClass Object
(
[id] => 10
[year] => 30-5-2016
[user_id] => 5
)
)

关于php - Laravel 4 查询生成器 - groupBy 最大日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23835311/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com