首頁  >  文章  >  後端開發  >  如何修復 Laravel Eloquent 中由於 SQL_MODE 不相容而導致的 SQL 錯誤?

如何修復 Laravel Eloquent 中由於 SQL_MODE 不相容而導致的 SQL 錯誤?

Barbara Streisand
Barbara Streisand原創
2024-10-18 12:28:30190瀏覽

How to Fix SQL Errors Due to Incompatible SQL_MODE in Laravel Eloquent?

解決Laravel Eloquent 中SQL_MODE 不相容導致的錯誤

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

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn