【发布时间】:2019-03-09 16:47:17
【问题描述】:
我知道这是一个已知问题,关于这个问题还有其他关于 SO 的问题,但没有一个有用。如果我在运行抛出 Laravel 时直接针对数据库运行,则原始查询工作正常,它会给出错误。 到底是怎么回事?
查询:
Order::selectRaw("COUNT(id) AS `data`, DATE_FORMAT(created_at, '%m-%Y') AS new_date, YEAR(created_at) AS `year`, MONTH(created_at) AS `month`")
->groupBy('year')->get();
错误:
SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'orders.created_at' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by (SQL: select COUNT(id) AS `data`, DATE_FORMAT(created_at, '%m-%Y') AS new_date, YEAR(created_at) AS `year`, MONTH(created_at) AS `month` from `orders` group by `year`)
【问题讨论】:
-
你能告诉我们你想达到什么目标吗?在 Laravel 中编码很长时间,从来没有遇到过这样的情况,所以我必须创建原始 sql 查询,100% 的时间模型和雄辩,工作。
标签: laravel eloquent laravel-query-builder