Laravel 4中无法运行原始查询

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中运行这个原始查询?
4个回答

9
尝试一下。
DB::statement( 'Your Query' );

或者

DB::select( 'Your Query' );

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的理念。


2

0

试试这个

DB::select( DB::raw("SELECT * FROM table_Name WHERE col = :somevariable"), array(
   'somevariable' => $someVariable,
 ));

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接