我的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文档)。
答案 0 :(得分:24)
如果你想做raw groupBy,你可以这样做......
...->groupBy(DB::raw('some_alias'))