【发布时间】:2019-06-19 03:17:19
【问题描述】:
我有大约 50000 条记录,我正在使用服务器端处理的 Datatable 中显示它们。
在我的查询中,我将groupBy() 方法与skip() 和take() 方法一起应用。
我希望能够应用限制 之后 groupBy() 例如
如果限制为 10,它应该返回 10 个组而不是 10 条记录。
DB::table('actions')->whereBetween('timestamp',
array($dates['startDate'], $dates['endDate']))
->where('shop_name', $shopName)
->skip($start)
->take(10)
->get()
->groupBy('product_id');
通过这个查询,我得到 10 个记录而不是 10 个组。
【问题讨论】:
-
把你的
groupBy()放在你的->get()之前 -
我试过然后 groupBY() 不起作用。它显示 10 个没有组的记录。
-
它是否显示了具有 10 个不同 product_id 的 10 个不同操作?因为那是你分组的依据。您必须将 groupBy() 放在 get() 之前。
-
是的,它使用 10 个不同的 product_id 显示了 10 个不同的操作。
-
然后它起作用了,您有 10 个不同的组,因为您有超过 10 个以上的 product_id,您将收到 10 条记录。它完全按照你的要求做了。
标签: laravel query-builder laravel-5.7 laravel-query-builder skip-take