首页  >  文章  >  数据库  >  如何修复 Laravel Eloquent 中的'与 sql_mode=only_full_group_by 不兼容”错误?

如何修复 Laravel Eloquent 中的'与 sql_mode=only_full_group_by 不兼容”错误?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-11-23 12:10:19292浏览

How to Fix the

解决 Laravel Eloquent 中 sql_mode=only_full_group_by 的不兼容错误

Laravel Eloquent 查询可能会遇到“与 sql_mode=only_full_group_by 不兼容”错误查询包含非聚合列在功能上不依赖于 GROUP BY 子句中的列的 SELECT 列表。要解决此问题,可以在数据库连接设置中禁用 MySQL 严格模式。

在提供的示例代码中,查询按 store_id 分组并按 Updated_at 排序,但 id 列也包含在选择列表。由于 id 在功能上不依赖于 store_id,因此无法在没有聚合的情况下将其包含在 SELECT 列表中。

要解决该错误,请通过将以下配置添加到 config/database 中的数据库连接设置来禁用 MySQL 严格模式.php 文件:

'connections' => [
    'mysql' => [
        // Behave like MySQL 5.6
        'strict' => false,

        // Behave like MySQL 5.7
        'strict' => true,
    ]
]

禁用严格模式允许非聚合列包含在 SELECT 列表中,即使它们在功能上不依赖于中的列GROUP BY 子句。

其他配置设置

与严格模式相关的更多配置选项可以在 Matt 的博客文章中找到斯托弗:

  • https://mattsauer.com/blog/laravel-5-3-group-by-hack-with-mysql-strict-mode

以上是如何修复 Laravel Eloquent 中的'与 sql_mode=only_full_group_by 不兼容”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn