zoukankan      html  css  js  c++  java
  • Laravel/Lumen 分组求和问题 where groupBy sum

    在Laravel中使用分组求和,如果直接使用Laravel各数据库操作方法,应该会得出来如下代码式:

    DB::table('table_a')
        ->where('a','=',1)
        ->groupBy('b')
        ->select("sum(c) as d")
        ->get();
    

    但是,这么做会报错,因为laravel中的select方法会把空格当成要获取的字段间隔,于是生成的SQL语句就会变成
    select 'sum(c)','as','d' ...

    这肯定不会是我们想要的,那么如何解决这个问题呢?我想到了两种方法:
    第一种方法:使用sql原生语句,绕过这个问题
    DB::select("select sum(c) as 'd' from table_a where a=1 group by b")
    第二种方法:使用DB::raw(),对sum(c) as 'd'使用raw()方法,部分原生

    DB::table('table_a')
        ->where('a','=',1)
        ->groupBy('b')
        ->select(DB::raw("sum(c) as d"),)    
        ->get();
    
  • 相关阅读:
    5.2-5.3
    5.1封装
    阅读《构建之法》 5-7章
    做汉堡
    阅读《构建之法》1-5章
    结对 四则运算
    回答
    读后感
    提问*2
    提问1
  • 原文地址:https://www.cnblogs.com/HappyTeemo/p/15475979.html
Copyright © 2011-2022 走看看