我无法在Laravel 5.3中运行这个简单的查询
$top_performers = DB::table('pom_votes') ->groupBy('performer_id') ->get();
它给了我:
SQLSTATE[42000]: Syntax error or access violation: 1055 'assessment_system.pom_votes.id' isn't in GROUP BY (SQL: select * from `pom_votes` group by `performer_id`)
但是,如果我从错误中复制原始查询并直接在PhpMyAdmin中触发,它可以正常工作.
我已经检查了这个:
https://laravel.com/docs/5.3/queries#ordering-grouping-limit-and-offset
任何帮助将是appricaited.
谢谢,
Parth Vora
编辑应用程序的数据库配置文件 config/database.php
在mysql
数组中,设置strict => false
为禁用MySQL的严格模式
也许您的问题是由于您使用的是MySQL服务器版本5.7.5+.从这个版本开始,工作方式GROUP BY
会发生变化,因为它们的行为是为了符合SQL99(在以前的版本中不是这样).
尝试通过执行完整的组或更改MySQL服务器的配置.
连接到MySQL官方文档,其中满GROUP BY
是explanined