当前位置:  开发笔记 > 编程语言 > 正文

小组不工作 - Laravel

如何解决《小组不工作-Laravel》经验,为你挑选了2个好方法。

我无法在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



1> Md.Jewel Mia..:

编辑应用程序的数据库配置文件 config/database.php

mysql数组中,设置strict => false为禁用MySQL的严格模式


禁用严格模式不是一个好的解决方案.请参阅以下@GabrieleCiech的答案
你能详细说明为什么这个问题解决了吗?
万分感谢.这是确切的问题.
如果在Laravel文档的某处提到它会很好。
感谢您的回答。辛苦了 并且您能解释一下mysql配置中“ strict”参数的作用吗?

2> 小智..:

也许您的问题是由于您使用的是MySQL服务器版本5.7.5+.从这个版本开始,工作方式GROUP BY会发生变化,因为它们的行为是为了符合SQL99(在以前的版本中不是这样).

尝试通过执行完整的组或更改MySQL服务器的配置.

连接到MySQL官方文档,其中满GROUP BY是explanined


我希望随着时间的推移,这个答案将获得更多的选票,因为它应该被认为是正确的答案。了解事情为什么起作用以及应该如何处理很重要。
推荐阅读
sx-March23
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有