解决 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 的博客文章中找到斯托弗:
以上是如何修复 Laravel Eloquent 中的'与 sql_mode=only_full_group_by 不兼容”错误?的详细内容。更多信息请关注PHP中文网其他相关文章!