如何解決 Laravel Eloquent 中 MySQL 的「與 sql_mode=only_full_group_by 不相容」錯誤?

DDD
發布: 2024-11-22 16:16:47
原創
878 人瀏覽過

How to Resolve MySQL's

解決Laravel Eloquent 中MySQL '不相容sql_mode=only_full_group_by' 問題

使用Laravel Eloquent 進行資料庫操作時常遇到的問題是「Expression」錯誤「Expression」 ” SELECT 列表不在GROUP BY子句中並且包含非聚合列[...]。 「此錯誤是由於MySQL 的嚴格模式(稱為only_full_group_by)而產生的。

為了舉例說明該問題,請考慮以下Eloquent 查詢:

$products = Product::where('status', 1)
            ->where('stock', '>', 0)
            ->where('category_id', '=', $category_id)
            ->groupBy('store_id')
            ->orderBy('updated_at', 'desc')
            ->take(4)
            ->get();
登入後複製

執行此查詢可能會導致上述MySQL 錯誤。清單中的所有欄位要麼是聚合函數(例如COUNT、SUM),要麼包含在GROUP BY 子句中。 。的嚴格模式:

或者,您可以將列新增至GROUP BY子句:
'connections' => [
    'mysql' => [
        // Disabling strict mode for MySQL 5.6
        'strict' => false,
    ]
]
登入後複製

透過放寬嚴格模式或調整查詢以滿足MySQL的要求,您可以消除此錯誤並成功檢索資料。

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

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板