首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel Mysql - Group By

Laravel Mysql - Group By
EN

Stack Overflow用户
提问于 2016-08-26 14:08:33
回答 2查看 1.7K关注 0票数 0

我的桌子下面有

代码语言:javascript
复制
 id  zip_code  city              region              municipality                    created_at           updated_at  
------  --------  ----------------  ------------------  ---------------------  -------------------  ---------------------
     1      2100  København Ø       Region Hovedstaden  Københavns Kommune     2016-08-24 19:32:05    2016-08-24 19:32:05
     2      2150  Nordhavn          Region Hovedstaden  Københavns Kommune     2016-08-24 19:32:05    2016-08-24 19:32:05
     3      2200  København N       Region Hovedstaden  Københavns Kommune     2016-08-24 19:32:05    2016-08-24 19:32:05
     4      2300  København S       Region Hovedstaden  Københavns Kommune     2016-08-24 19:32:05    2016-08-24 19:32:05
     5      2400  København NV      Region Hovedstaden  Københavns Kommune     2016-08-24 19:32:05    2016-08-24 19:32:05
     6      2700  København B       Region Nordstran    Hårlev Komune          2016-08-26 13:13:56    2016-08-26 13:13:59
     7      3540  Lynge             Region Hovedstaden  Egedal Kommune         2016-08-24 19:32:05    2016-08-24 19:32:05
     8      3550  Slangerup         Region Hovedstaden  Hillerød Kommune       2016-08-24 19:32:05    2016-08-24 19:32:05
     9      3670  Veksø Sjælland    Region Hovedstaden  Egedal Kommune         2016-08-24 19:32:05    2016-08-24 19:32:05
    10      4050  Skibby            Region Hovedstaden  Frederikssund Kommune  2016-08-24 19:32:05    2016-08-24 19:32:05
    11      2610  Rødovre           Region Hovedstaden  Københavns Kommune     2016-08-24 19:32:05    2016-08-24 19:32:05

我使用下面的代码来获得表的结果。

代码语言:javascript
复制
\App\Models\Backend\AreaCodes::orderBy('region', 'desc')->get()->groupBy('region')->toArray();

所以我得到了一个结果,我的表是按”分组的--工作得很好,但是对于某些区域,我在相同的区域中有大约500行。

如何将组拆分为多个较小的组,其名称与区域相同,包含接下来的100行。

所以我得到了如下的小组。

组(区域hovedstaden) = 100行

组(区域hovedstaden) = 100行

组(区域hovedstaden) = 100行

总共有1400行在我的桌子上。

我试过了下面的代码。

代码语言:javascript
复制
\App\Models\Backend\AreaCodes::orderBy('region', 'desc')->paginate(2)->get()->groupBy('region')->toArray();

但它带来了错误

如果我使用Illuminate\Support\Collection::get() ,那么我能做什么呢?

我也检查了这个链接Get top n records for each group of grouped results没有帮助这里。

我希望你的人能理解我)

种类的问候.

EN

回答 2

Stack Overflow用户

发布于 2016-08-26 15:41:05

代码语言:javascript
复制
\App\Models\Backend\AreaCodes::orderBy('region', 'desc')
->groupBy('region')
->paginate(2)
->toArray();

如果您在视图上使用分页,应该可以工作。

如果您只想限制从数据库中获取的结果,可以使用skip / take

代码语言:javascript
复制
App\Models\Backend\AreaCodes::orderBy('region', 'desc')
->groupBy('region')
->skip(500) // skips 500 rows
->take(500) // takes 500 rows
->get()
->toArray();
票数 0
EN

Stack Overflow用户

发布于 2016-08-26 15:30:27

我不太确定,但我认为分页(2)、get()和to array()不能一起工作。

我建议您只尝试分页(2)和分页(2)->toArray();

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39168290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档