」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > LaravelWhereIn 與 GroupBy:如何解決 MySQL 的 1055 錯誤?

LaravelWhereIn 與 GroupBy:如何解決 MySQL 的 1055 錯誤?

發佈於2024-12-21
瀏覽:531

Laravel WhereIn and GroupBy: How to Resolve MySQL's 1055 Error?

Laravel:語法錯誤或存取衝突:使用WhereIn和GroupBy時出現1055錯誤

對於特定行資料檢索,Laravel允許我們在同一查詢中同時使用WhereIn 和GroupBy。但是,這有時會導致「語法錯誤或存取衝突:1055 錯誤」。

錯誤原因

此錯誤發生在以下情況:

  • MySQL 設定中啟用了嚴格模式。
  • WhereIn 條件中使用的 id 欄位不包含在GroupBy欄位清單中。

解決方案

解決方案

禁用嚴格模式
'mysql' => [
    ...
    'strict'   => false,
    ...
],

可以禁用MySQL的嚴格模式透過在config/database. php 的'mysql' 數組中設定'strict' => false檔。 'mysql' => [ …… '嚴格' => 假, …… ],

將模式添加到MySQL 選項
'mysql' => [
    ...
    'strict'   => false,
    ...
],

或者,您可以啟用嚴格模式並將特定模式添加到'mysql' 數組的'modes' 選項: 'mysql' => [ …… '嚴格' => 正確, '模式' => ['STRICT_TRANS_TABLES'], …… ],

在WhereIn中合併GroupBy字段
'mysql' => [
    ...
    'strict'   => false,
    ...
],

確保WhereIn條件中使用的id字段也包含在GroupBy字段列表中。這將防止錯誤發生。

$loadids =explode("#@*", $reciptdet->loading_id); $loadingdatas = DB::table('正在載入') ->groupBy(['車輛編號', 'id']) ->whereIn('id', $loadids) ->get();Laravel WhereIn and GroupBy: How to Resolve MySQL's 1055 Error?

透過實作這些解決方案,您可以解決在相同查詢中使用WhereIn和GroupBy時出現的「語法錯誤或存取衝突:1055錯誤」。

最新教學 更多>

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3