我有一个名为shopping_apps,
的表,该表在不同的日期有不同的条目。我想拥有所有记录,但是将所有记录按日期分组(而不是时间部分)。假设我在date1
上有20个条目,在date2
上有12个条目。我只想从数据库中提取两个值:date1
和date2
。所述控制器的下方,和Shopping_app
是我的型号名称。
<?php
// Use substr() to retrieve date part 10 chars in length.
$shoppingApp = Shopping_app::orderBy('created_at', 'DESC')
->groupBy(substr('created_at', 0, 10))
->get();
错误:
SQLSTATE [42000]:语法错误或访问冲突:1055 'laravelpro4.shopping_apps.id' 是不是在GROUP BY(SQL:从SELECT *
shopping_apps
按created_at
分组,按created_at
desc)
答案 0 :(得分:1)
$shoppingApp = Shopping_app::where('created_at', '>=', \Carbon\Carbon::now->subMonth())
->groupBy(DB::raw('Date(created_at)'))
->orderBy('created_at', 'DESC')->get();
尝试这个也许对您有帮助
答案 1 :(得分:1)
因此,与@manish的帮助下,我得到正确的答案(我一直在试图获得)
错误已解决
添加错误
在config\database.php
中-> “ mysql” 数组
将'strict'=>假设置为全部禁用。
最终代码:
$shoppingApp = Shopping_app::where('created_at', '>=', \Carbon\Carbon::now()->subMonth())
->groupBy(DB::raw('Date(created_at)'))
->orderBy('created_at', 'DESC')->get();