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 ?
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!