欢迎各位兄弟 发布技术文章

这里的技术是共享的

You are here

Laravel使用构建器来生成原生sql语句来对 总和 sum 排序 先分组后排序 groupby orderby group by order by 有大用 有大大用 有大大大用

我们在使用laravel时,会有一些特殊情况,例如我们有个考试成绩表,上面有多次考试,有多个学生,怎么实现拿到单个学生的单次考试成绩总和以便进行排序呢?

 

[sql] view plain copy
 
  1. $students = ScoreView::where("classid",$class_id)->where("examid",$id)  

  2. ->selectRaw('studentnum,studentname,sum(score) as scoresum')  //使用原生sql,计算总和,别名叫做scoresum,同理还有whereRaw等,只要加了Raw就可以用原生语句  

  3. ->groupBy('studentnum')  //根据学生来分组  

  4. ->orderby("scoresum","desc")->get(); //orderByRaw('scoresum desc')这种写法也可以  


这样就能拿到我们需要的,前面那个scoreview是model.代表一张数据表,现在我们这样就把laravel和原生sql结合起来了。

来自 http://blog.csdn.net/amazingdyd/article/details/51492244

普通分类: