2015-03-31 63 views
4

我的Laravel 5應用程序包含用於報表運行的動態查詢生成器。我在那裏需要一些小組的條款,並遇到了問題。如果我在那裏使用實際的sql,我可能會遇到問題,因爲有時需要在sql中有一個sql命令(而不是簡單的列名),即 - DAYNAME(table_name.date_column)。 Laravel軋液這樣的:Laravel查詢生成器 - 如何按別名分組,或者執行raw groupBy

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

對於我查詢的選擇部分我可以用selectRaw,但似乎沒有要由集團的equivaent。

我想過使用別名(所有的選擇都是別名),但Laravel也將它們包裝在「`」字符中。此外 - 我的應用程序需要與MySQL和SQL Server一起工作,據我所知,後者不允許在查詢部分的組中使用別名。

我可以在Illuminate \ Database \ Query \ Grammars \ Grammar中找到該方法,其中group by是編譯的(compileGroups),我想我可以覆蓋它,但我不太確定該怎麼去做閱讀Laravel文檔)。

回答

12

如果你想要做原料GROUPBY,你可以做這樣的事情......

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

嗯,這是比我預想的更輕鬆!謝謝。 – 2015-03-31 14:15:47

+0

這個答案幫了我,直到我遇到這個問題:https://stackoverflow.com/q/38262133/470749 – Ryan 2017-06-09 16:40:53

+0

這似乎是一個不同的問題,並沒有添加任何上下文到這個問題。 – user3158900 2017-06-09 19:26:32