ホームページ >バックエンド開発 >PHPチュートリアル >Laravel WhereIn と GroupBy: MySQL の 1055 エラーを解決するには?

Laravel WhereIn と 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' => を設定すると、MySQL の strict モードを無効にできます。 config/database.php ファイルの 'my​​sql' 配列に 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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。