无法在Laravel 4中运行原始查询

Tan*_*aus 3 laravel laravel-4

我需要在页面中显示总计数.

我可以运行此循环并获取总数

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查询?

Saf*_*eer 9

尝试

DB::statement( 'Your Query' );
Run Code Online (Sandbox Code Playgroud)

要么

DB::select( 'Your Query' );
Run Code Online (Sandbox Code Playgroud)


Sha*_*yne 6

如其他贡献者所述; -

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哲学.