Laravel查询构建器 - 如何按别名分组,或执行原始groupBy

时间:2015-03-31 14:07:24

标签: mysql laravel group-by laravel-5 query-builder

我的Laravel 5应用程序包含一个用于报告运行的动态查询构建器。我需要一些group by子句,并遇到了问题。如果我在那里使用实际的sql,我可能会遇到问题,因为有时需要在sql中使用sql命令(而不是简单的列名),即 - DAYNAME(table_name.date_column)。 Laravel破坏了这个:

\`DAYNAME(table_name\`.\`date_column)\`

对于我的查询的选择部分,我可以使用selectRaw,但似乎没有相应的group by。

我想过使用别名(所有选择都是别名)但是Laravel也用“`”字符包装它们。此外 - 我的应用程序需要与MySQL和SQL Server一起使用,据我所知,后者不允许在查询的组中使用别名。

我可以在Illuminate \ Database \ Query \ Grammars \ Grammar中找到编译group by的方法(compileGroups),我想我可以覆盖它但是我不太清楚我会怎么做(已阅读) Laravel文档)。

1 个答案:

答案 0 :(得分:24)

如果你想做raw groupBy,你可以这样做......

...->groupBy(DB::raw('some_alias'))