如何解決 Laravel Eloquent 查詢錯誤:與 sql_mode=only_full_group_by 不相容?

Patricia Arquette
發布: 2024-10-18 12:17:02
原創
450 人瀏覽過

How to Resolve Laravel Eloquent Query Error: Incompatible with sql_mode=only_full_group_by?

Laravel Eloquent 查詢錯誤:與sql_mode=only_full_group_by 不相容

在涉及Laravel Eloquent 可能會遇到的某些場景中,到一條錯誤訊息,指出:

<code class="text">SQLSTATE[42000]: Syntax error or access violation: 1055 Expression #1
of SELECT list is not in GROUP BY clause and contains nonaggregated
column 'myshop.products.id' which is not functionally dependent on
columns in GROUP BY clause; this is incompatible with
sql_mode=only_full_group_by</code>
登入後複製

此錯誤是由MySQL 嚴格模式引起的,該模式要求SELECT 清單中的所有欄位都進行分組或聚合。

解決方案:停用 MySQL 嚴格模式

此問題最簡單、最有效的解決方案是在資料庫連線設定中停用 MySQL 嚴格模式。這可以透過將以下配置新增至您的database.php檔案來實現:

<code class="php">'connections' => [
    'mysql' => [
        // Behave like MySQL 5.6
        'strict' => false,

        // Behave like MySQL 5.7
        'strict' => true,
    ]
]</code>
登入後複製

將「strict」設定為「false」將允許您的查詢在沒有sql_mode=only_full_group_by施加的約束的情況下執行。

高級配置

更多關於 MySQL 嚴格模式行為的微調控制,您可以參考 Matt Stauffer 關於該主題的部落格文章:

<code class="text">https://mattstauffer.com/blog/mysql-config-for-laravel-developers</code>
登入後複製

以上是如何解決 Laravel Eloquent 查詢錯誤:與 sql_mode=only_full_group_by 不相容?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板
關於我們 免責聲明 Sitemap
PHP中文網:公益線上PHP培訓,幫助PHP學習者快速成長!