【问题标题】:Laravel - How to do a specific query with query builderLaravel - 如何使用查询生成器进行特定查询
【发布时间】:2018-02-16 05:26:42
【问题描述】:

我正在使用 Laravel 并且有一个非常具体的查询,我不知道如何使用查询构建器来实现。

查询:

SET @c_num=0;

SELECT *, @c_num:=@c_num+1 AS 'COUNT' 
FROM table_name 
WHERE USERID = 2
ORDER BY id

谢谢

【问题讨论】:

    标签: mysql laravel laravel-query-builder


    【解决方案1】:

    您应该能够执行以下操作:

    DB::statement(DB::raw('SET @c_num = 0'));
    
    $result = DB::table('table_name')
        ->selectRaw("*, @c_num:=@c_num+1 AS 'COUNT'")
        ->where('userid', 2)
        ->orderBy('id')
        ->get();
    

    【讨论】:

      【解决方案2】:
      $data = DB::table('table_name')
      ->where('userid',2)
      ->select('table_name.*',DB::raw('(@c_num:=@c_num+1) Count')
      ->orderBy('id')
      ->get();
      

      【讨论】:

        【解决方案3】:

        你可以试试下面的

        DB::table('table_name')
            ->selectRaw("*, @c_num:=IF(@c_num, @c_num+1, 1) as 'COUNT'")
            ->where('user_id', 2)
            ->orderBy('id');
        

        【讨论】:

          猜你喜欢
          • 2013-05-30
          • 2016-11-16
          • 2019-04-25
          • 2018-06-23
          • 2020-12-25
          • 2020-01-30
          • 2014-03-12
          • 2021-11-19
          • 1970-01-01
          相关资源
          最近更新 更多