首頁 >後端開發 >php教程 >LaravelWhereIn 和 GroupBy:如何修復「語法錯誤或存取衝突:1055」?

LaravelWhereIn 和 GroupBy:如何修復「語法錯誤或存取衝突:1055」?

DDD
DDD原創
2024-12-20 11:00:11293瀏覽

Laravel WhereIn and GroupBy: How to Fix

Laravel:使用WhereIn和GroupBy時解決「語法錯誤或存取衝突:1055錯誤」

在Laravel中,嘗試組合WhereIn和GroupBy時會出現一個常見問題單一查詢中的GroupBy 方法,導致可怕的「語法錯誤或存取衝突:1055」錯誤。

要解決此錯誤,請考慮以下選項:

停用嚴格模式

在 config/database.php 檔案中,找到 MySQL 連線配置陣列。新增以下行:

'mysql' => [
    ...
    'strict' => false,
    ...
]

透過將 strict 設為 false,將停用所有嚴格選項,從而允許執行查詢而不會遇到錯誤。

啟用特定嚴格模式

或者,您可以選擇性地啟用特定的嚴格模式,同時保持啟用常規嚴格模式。新增以下行:

'mysql' => [
    ...
    'strict' => true,
    'modes' => [
        // 'ONLY_FULL_GROUP_BY', // Disable this to allow grouping by one column
        'STRICT_TRANS_TABLES',
        'NO_ZERO_IN_DATE',
        'NO_ZERO_DATE',
        'ERROR_FOR_DIVISION_BY_ZERO',
        'NO_AUTO_CREATE_USER',
        'NO_ENGINE_SUBSTITUTION'
    ],
    ...
]

在這種情況下,ONLY_FULL_GROUP_BY 模式被停用,允許按單列分組,而其他嚴格模式保持活動狀態。

透過實作這些解決方案,您可以解決「語法錯誤或存取衝突:1055」錯誤並成功執行結合WhereIn和GroupBy的查詢。

以上是LaravelWhereIn 和 GroupBy:如何修復「語法錯誤或存取衝突:1055」?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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