ホームページ >バックエンド開発 >PHPチュートリアル >WhereIn と GroupBy を使用する際の Laravel の「構文エラーまたはアクセス違反: 1055」エラーを修正する方法は?

WhereIn と GroupBy を使用する際の Laravel の「構文エラーまたはアクセス違反: 1055」エラーを修正する方法は?

Barbara Streisand
Barbara Streisandオリジナル
2024-12-09 09:51:07378ブラウズ

How to Fix Laravel's

Laravel の「構文エラーまたはアクセス違反: 1055」のトラブルシューティング

同じクエリで WhereIn と GroupBy を使用すると、 「SQLSTATE[42000]: 構文エラーまたはアクセス違反: 1055」などのエラー。これは、すべての非集計列を GROUP BY 句に含めるという SQL の要件に違反していることを示しています。

この問題を解決するには、2 つのオプションがあります。

厳密モードを無効にする

config/database.php ファイルの「mysql」配列の下で、次のように設定します。 'strict' を false に設定します。これにより、すべての厳密モード設定が無効になります。

許可される厳密モードを指定する

または、'strict' を true のままにして、特定のモードを 'modes' オプションに追加することもできます。 。 GROUP BY 句に含めずに 1 つの列によるグループ化を許可するには、「ONLY_FULL_GROUP_BY」モードをコメント アウトします。

'mysql' => [
    ...

    'strict' => true,
    'modes' => [
        // 'ONLY_FULL_GROUP_BY', // Disable this to allow grouping by one column
        'STRICT_TRANS_TABLES',
        'NO_ZERO_IN_DATE',
        'NO_ZERO_DATE',
        'ERROR_FOR_DIVISION_BY_ZERO',
        'NO_AUTO_CREATE_USER',
        'NO_ENGINE_SUBSTITUTION'
    ],
]

「1055」エラーが発生することなく、引き続き WhereIn と GroupBy を使用できます。

注: セキュリティとデータのために厳密モードを使用することをお勧めします誠実さの理由。ただし、非集計列によるグループ化が必要なクエリの場合は、一時的に無効にする必要がある場合があります。

以上がWhereIn と GroupBy を使用する際の Laravel の「構文エラーまたはアクセス違反: 1055」エラーを修正する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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