首頁 >後端開發 >php教程 >LaravelWhereIn 與 GroupBy:如何解決 MySQL 的 1055 錯誤?

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

Mary-Kate Olsen
Mary-Kate Olsen原創
2024-12-07 16:24:13776瀏覽

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

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

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

錯誤原因

此錯誤發生在以下情況:

  • MySQL 設定中啟用了嚴格模式。
  • id 字段,用於WhereIn條件,不包含在GroupBy字段列表中。

解決方案

停用嚴格模式

您可以透過設定'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中文網其他相關文章!

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