3

我需要获得总计数才能显示在我的页面中。

我可以运行这个 & 循环 & 得到总数

DB::table('table1')
    ->select((DB::raw('MAX(score)')))
    ->where('status', 1)
    ->groupBy('user_id')
    ->get();

但是这个查询将在一个查询中给我计数并且我不需要运行任何额外的循环来获得总数。

SELECT COUNT( * ) FROM (
  SELECT MAX( score ) FROM table1
  WHERE status =1
  GROUP BY user_id
) AS totalCounter

我想如何在 Laravel 4 中运行这个 RAW 查询?

4

4 回答 4

9

尝试

DB::statement( 'Your Query' );

或者

DB::select( 'Your Query' );
于 2013-05-18T21:53:33.793 回答
6

正如其他贡献者所提到的;-

DB::select('SQL QUERY GOES HERE WITH PARAMETERS ?, ?', array('parameter 1', 'parameter 2'));

上面的代码应该允许原始 sql。

然而,

DB::table('table1')
    ->select((DB::raw('MAX(score)')))
    ->where('status','=', 1)
    ->groupBy('user_id')
    ->count();

应该对你寻求的任务达到同样的效果,并且更符合 laravel 哲学。

于 2013-07-04T05:27:33.683 回答
2
DB::select(DB::raw("SQL QUERY CODE HERE"))

raw 和 select 都是必需的!

请参阅更多信息: Laravel 4:如何运行原始 SQL?

于 2013-07-02T18:33:55.927 回答
0

尝试这个

DB::select( DB::raw("SELECT * FROM table_Name WHERE col = :somevariable"), array(
   'somevariable' => $someVariable,
 ));
于 2015-04-21T09:00:22.630 回答