Maison >développement back-end >tutoriel php >Comment corriger l'erreur « Erreur de syntaxe ou violation d'accès : 1055 » de Laravel lors de l'utilisation de WhereIn et GroupBy ?

Comment corriger l'erreur « Erreur de syntaxe ou violation d'accès : 1055 » de Laravel lors de l'utilisation de WhereIn et GroupBy ?

Barbara Streisand
Barbara Streisandoriginal
2024-12-09 09:51:07381parcourir

How to Fix Laravel's

Dépannage « Erreur de syntaxe ou violation d'accès : 1055 » dans Laravel

Lors de l'utilisation de WhereIn et GroupBy dans la même requête, vous pouvez rencontrer un erreur telle que "SQLSTATE[42000] : erreur de syntaxe ou violation d'accès : 1055". Cela indique une violation de l'exigence de SQL d'inclure toutes les colonnes non agrégées dans la clause GROUP BY.

Pour résoudre ce problème, il existe deux options.

Désactiver le mode strict

Désactiver le mode strict

Dans votre fichier config/database.php, sous le tableau 'mysql', définissez 'strict' sur false. Cela désactivera tous les paramètres du mode strict.

Spécifiez les modes stricts autorisés

'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'
    ],
]

Vous pouvez également laisser « strict » sur vrai et ajouter des modes spécifiques à l'option « modes ». . Pour autoriser le regroupement par colonne sans l'inclure dans la clause GROUP BY, commentez le mode 'ONLY_FULL_GROUP_BY'.

Vous pouvez continuer à utiliser WhereIn et GroupBy sans rencontrer l'erreur "1055".

Remarque : Il est recommandé d'utiliser le mode strict pour des raisons de sécurité et d'intégrité des données. Cependant, vous devrez peut-être le désactiver temporairement pour les requêtes nécessitant un regroupement par colonnes non agrégées.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn