在 Laravel Eloquent 中,执行涉及分组的查询时,可能会遇到类似以下错误:
SQLSTATE[42000]: Expression #1 of SELECT list is not in GROUP BY clause ... incompatible with sql_mode=only_full_group_by
当查询中使用的列未包含在 GROUP BY 子句中时,通常会出现此错误。
解决方案:
要解决此问题,请执行以下操作:推荐的方法是在数据库连接设置中禁用MySQL严格模式。这可以通过将以下行添加到数据库配置文件(例如 config/database.php)来实现:
<code class="php">'connections' => [ 'mysql' => [ // MySQL 5.6 behavior 'strict' => false, // MySQL 5.7 behavior 'strict' => true ] ],</code>
此外,您可以探索 Matt Stauffer 博客文章中提供的其他配置设置以查找针对您的特定数据库环境的最佳设置。通过禁用 MySQL 严格模式,您可以在 GROUP BY 子句中使用非聚合列,从而解决了错误。
以上是如何修复 Laravel Eloquent 中由于 SQL_MODE 不兼容而导致的 SQL 错误?的详细内容。更多信息请关注PHP中文网其他相关文章!