我的 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 中找到编译分组依据的方法 (compileGroups),我想我可以覆盖它,但我不太确定我会怎么做(已阅读Laravel 文档)。
最佳答案
如果你想做原始的groupBy,你可以做这样的事情......
...->groupBy(DB::raw('some_alias'))
关于mysql - Laravel query builder - 如何按别名分组,或做原始 groupBy,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29370577/