Laravel: 構文エラーまたはアクセス違反: WhereIn および GroupBy 使用時の 1055 エラー
特定の行データの取得について、Laravel では次のことが可能です。同じクエリで WhereIn と GroupBy の両方を使用します。ただし、これによって「構文エラーまたはアクセス違反: 1055 エラー」が発生する場合があります。
エラーの原因
このエラーは次の場合に発生します。
ソリューション
厳密モードを無効にする
'strict' => を設定すると、MySQL の strict モードを無効にできます。 config/database.php ファイルの 'mysql' 配列に false を設定します。
'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 エラー」を解決できます。
以上がLaravel WhereIn と GroupBy: MySQL の 1055 エラーを解決するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。