我需要在页面中显示总计数.
我可以运行此循环并获取总数
DB::table('table1')
->select((DB::raw('MAX(score)')))
->where('status', 1)
->groupBy('user_id')
->get();
Run Code Online (Sandbox Code Playgroud)
但是这个查询只会在一个查询中给我计数,而且我不需要运行任何额外的循环来获得总数.
SELECT COUNT( * ) FROM (
SELECT MAX( score ) FROM table1
WHERE status =1
GROUP BY user_id
) AS totalCounter
Run Code Online (Sandbox Code Playgroud)
我怎么想在Laravel 4中运行这个RAW查询?
尝试
DB::statement( 'Your Query' );
Run Code Online (Sandbox Code Playgroud)
要么
DB::select( 'Your Query' );
Run Code Online (Sandbox Code Playgroud)
如其他贡献者所述; -
DB::select('SQL QUERY GOES HERE WITH PARAMETERS ?, ?', array('parameter 1', 'parameter 2'));
Run Code Online (Sandbox Code Playgroud)
上面的代码应该允许原始sql.
然而,
DB::table('table1')
->select((DB::raw('MAX(score)')))
->where('status','=', 1)
->groupBy('user_id')
->count();
Run Code Online (Sandbox Code Playgroud)
应该为你所寻求的任务达到同样的效果,并且更符合laravels哲学.