Laravel:語法錯誤或存取衝突:使用WhereIn 和GroupBy 時出現1055 錯誤
對於特定的行資料檢索,Laravel 允許我們在同一查詢中同時使用WhereIn 和GroupBy。但是,這有時會導致「語法錯誤或存取衝突:1055 錯誤」。
錯誤原因
此錯誤發生在以下情況:
解決方案
停用嚴格模式
您可以透過設定'strict' => 來停用的嚴格模式false 在config/database.php 檔案的'mysql' 陣列中。
'mysql' => [ ... 'strict' => false, ... ],
將模式加入 MySQL選項
或者,您可以啟用嚴格模式並將特定模式新增至「mysql」的「modes」選項中array:
'mysql' => [ ... 'strict' => true, 'modes' => ['STRICT_TRANS_TABLES'], ... ],
在WhereIn中合併GroupBy欄位
確保WhereIn條件中使用的id欄位也包含在GroupBy欄位清單中。這將防止錯誤發生。
$loadids = explode("#@*", $reciptdet->loading_id); $loadingdatas = DB::table('loading') ->groupBy(['vehicle_no', 'id']) ->whereIn('id', $loadids) ->get();
透過實作這些解決方案,您可以解決在相同查詢中使用WhereIn 和 GroupBy 時出現的「語法錯誤或存取衝突:1055 錯誤」。
以上是LaravelWhereIn 與 GroupBy:如何解決 MySQL 的 1055 錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!