kJa*_*esy 82 laravel eloquent laravel-4
我有一个表,其中包含一列浏览器版本.我只是想从记录集中了解每种类型的浏览器有多少.所以,我需要最终得到这样的结果:总记录:10; Internet Explorer 8:2; Chrome 25:4; Firefox 20:4.(所有加起来都是10)
这是我的两便士:
$user_info = Usermeta::groupBy('browser')->get();
Run Code Online (Sandbox Code Playgroud)
当然,它只包含3个浏览器,而不是每个浏览器的数量.我怎样才能做到这一点?
Ant*_*iro 168
这对我有用:
$user_info = DB::table('usermetas')
->select('browser', DB::raw('count(*) as total'))
->groupBy('browser')
->get();
Run Code Online (Sandbox Code Playgroud)
car*_*man 28
这对我有用(Laravel 5.1):
$user_info = Usermeta::groupBy('browser')->select('browser', DB::raw('count(*) as total'))->get();
Run Code Online (Sandbox Code Playgroud)
Dio*_*mes 18
谢谢Antonio,
我刚刚lists在最后添加了命令,因此它只返回一个带键和计数的数组:
Laravel 4
$user_info = DB::table('usermetas')
->select('browser', DB::raw('count(*) as total'))
->groupBy('browser')
->lists('total','browser');
Run Code Online (Sandbox Code Playgroud)
Laravel 5.1
$user_info = DB::table('usermetas')
->select('browser', DB::raw('count(*) as total'))
->groupBy('browser')
->lists('total','browser')->all();
Run Code Online (Sandbox Code Playgroud)
Laravel 5.2+
$user_info = DB::table('usermetas')
->select('browser', DB::raw('count(*) as total'))
->groupBy('browser')
->pluck('total','browser')->all();
Run Code Online (Sandbox Code Playgroud)
也是这样工作,更整洁一点.
getQuery()只返回已包含表引用的底层构建器.
$browser_total_raw = DB::raw('count(*) as total');
$user_info = Usermeta::getQuery()
->select('browser', $browser_total_raw)
->groupBy('browser')
->pluck('total','browser');
Run Code Online (Sandbox Code Playgroud)
如果要收集,请使用groupBy进行计数:
$collection = ModelName::groupBy('group_id')
->selectRaw('count(*) as total, group_id')
->get();
Run Code Online (Sandbox Code Playgroud)
干杯!
小智 5
config/database.phpstrict在mysql连接设置中查找关键falseLaravel 版本 8
去掉了DB的依赖
$counts = Model::whereIn('agent_id', $agents)
->orderBy('total', 'asc')
->selectRaw('agent_id, count(*) as total')
->groupBy('agent_id')
->pluck('total','agent_id')->all();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
225724 次 |
| 最近记录: |