Laravel 查询生成器 - 如何按别名分组,或进行原始分组
Laravel query builder - How to either group by alias, or do raw groupBy
我的 Laravel 5 应用程序包含一个用于报告 运行ning 的动态查询生成器。我需要一些 group by 子句并且 运行 成为一个问题。如果我在那里使用实际的 sql 我会遇到问题,因为有时 sql 中需要一个 sql 命令(而不是直接的列名),即 - DAYNAME(table_name.date_column)
. Laravel 破坏了这个:
\`DAYNAME(table_name\`.\`date_column)\`
对于查询的 select 部分,我可以使用 selectRaw,但似乎没有分组依据的等价物。
我想过使用别名(所有 select 都是别名)但 Laravel 也将它们包装在“`”字符中。此外 - 我的应用程序需要同时使用 MySQL 和 SQL 服务器,据我所知,后者不允许在查询的分组中使用别名。
我可以在 Illuminate\Database\Query\Grammars\Grammar 中找到编译分组依据 (compileGroups) 的方法,我想我可以覆盖它,但我不太确定我将如何去做(已阅读 Laravel 文档)。
如果你想做原始的groupBy,你可以做这样的事情...
...->groupBy(DB::raw('some_alias'))
我的 Laravel 5 应用程序包含一个用于报告 运行ning 的动态查询生成器。我需要一些 group by 子句并且 运行 成为一个问题。如果我在那里使用实际的 sql 我会遇到问题,因为有时 sql 中需要一个 sql 命令(而不是直接的列名),即 - DAYNAME(table_name.date_column)
. Laravel 破坏了这个:
\`DAYNAME(table_name\`.\`date_column)\`
对于查询的 select 部分,我可以使用 selectRaw,但似乎没有分组依据的等价物。
我想过使用别名(所有 select 都是别名)但 Laravel 也将它们包装在“`”字符中。此外 - 我的应用程序需要同时使用 MySQL 和 SQL 服务器,据我所知,后者不允许在查询的分组中使用别名。
我可以在 Illuminate\Database\Query\Grammars\Grammar 中找到编译分组依据 (compileGroups) 的方法,我想我可以覆盖它,但我不太确定我将如何去做(已阅读 Laravel 文档)。
如果你想做原始的groupBy,你可以做这样的事情...
...->groupBy(DB::raw('some_alias'))