使用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, ] ]
以上是如何解決 Laravel Eloquent 中 MySQL 的「與 sql_mode=only_full_group_by 不相容」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!