Laravel : Erreur de syntaxe ou violation d'accès : 1055 Erreur 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 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 ajouter des modes spécifiques à l'option 'modes' du tableau 'mysql' :
'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.
Clause de non-responsabilité: Toutes les ressources fournies proviennent en partie d'Internet. En cas de violation de vos droits d'auteur ou d'autres droits et intérêts, veuillez expliquer les raisons détaillées et fournir une preuve du droit d'auteur ou des droits et intérêts, puis l'envoyer à l'adresse e-mail : [email protected]. Nous nous en occuperons pour vous dans les plus brefs délais.
Copyright© 2022 湘ICP备2022001581号-3