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

Geo*_*ton 8 mysql group-by query-builder laravel laravel-5

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

\`DAYNAME(table_name\`.\`date_column)\`
Run Code Online (Sandbox Code Playgroud)

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

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

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

use*_*496 26

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

...->groupBy(DB::raw('some_alias'))
Run Code Online (Sandbox Code Playgroud)