如何使用laravel eloquent获得"select count(*)group by"

Ugo*_*lli 12 query-builder laravel eloquent laravel-5

我想用laravel eloquent执行以下句子

SELECT *, count(*) FROM reserves  group by day
Run Code Online (Sandbox Code Playgroud)

我唯一的解决方案就是在数据库中创建一个视图,但我很确定有一种方法可以用laravel方式来实现.

Mar*_*łek 20

你可以用这个:

$reserves = DB::table('reserves')->selectRaw('*, count(*)')->groupBy('day');
Run Code Online (Sandbox Code Playgroud)


sma*_*hat 5

由于您希望使用 Laravel Eloquent 来做到这一点,我假设您有一个模型名称Reserve。在这种情况下你可以使用这个

$reserve = Reserve::all()->groupBy('day')->count();
Run Code Online (Sandbox Code Playgroud)

  • 只是为了确保每个人都知道:这是一个可用的解决方案**但是**选择后在 php 中进行分组,并且在 sql 语句中分组要快得多。 (23认同)
  • 如果有 1000 万条记录怎么办? (6认同)