Laravel : Erreur de syntaxe ou violation d'accès : Erreur 1055 lors de l'utilisation de WhereIn et GroupBy
Pour une récupération de données de ligne spécifique, Laravel nous permet de utilisez à la fois WhereIn et GroupBy dans la même requête. Cependant, cela peut parfois entraîner une « Erreur de syntaxe ou violation d'accès : Erreur 1055 ».
Causes de l'erreur
Cette erreur se produit lorsque :
Solutions
Désactiver le mode strict
Vous pouvez désactiver le mode strict de MySQL mode strict en définissant 'strict' => false dans le tableau 'mysql' du fichier config/database.php.
'mysql' => [ ... 'strict' => false, ... ],
Ajouter des modes aux options MySQL
Vous pouvez également laisser le mode strict activé et ajoutez des modes spécifiques à l'option 'modes' de 'mysql' array :
'mysql' => [ ... 'strict' => true, 'modes' => ['STRICT_TRANS_TABLES'], ... ],
Incorporer le champ GroupBy dans WhereIn
Assurez-vous que le champ id utilisé dans la condition WhereIn est également inclus dans la liste des champs GroupBy. Cela empêchera l'erreur de se produire.
$loadids = explode("#@*", $reciptdet->loading_id); $loadingdatas = DB::table('loading') ->groupBy(['vehicle_no', 'id']) ->whereIn('id', $loadids) ->get();
En implémentant ces solutions, vous pouvez résoudre l'« Erreur de syntaxe ou violation d'accès : erreur 1055 » lors de l'utilisation de WhereIn et GroupBy dans la même requête.
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!