在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中文網其他相關文章!