"Si un ouvrier veut bien faire son travail, il doit d'abord affûter ses outils." - Confucius, "Les Entretiens de Confucius. Lu Linggong"
Page de garde > La programmation > Laravel WhereIn et GroupBy : comment résoudre l'erreur 1055 de MySQL ?

Laravel WhereIn et GroupBy : comment résoudre l'erreur 1055 de MySQL ?

Publié le 2024-12-21
Parcourir:133

Laravel WhereIn and GroupBy: How to Resolve MySQL's 1055 Error?

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 :

  • Le mode strict est activé dans les paramètres MySQL.
  • Le champ id, qui est utilisé dans la condition WhereIn, n'est pas inclus dans le champ GroupBy list.

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.

Dernier tutoriel Plus>

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