Maison > développement back-end > tutoriel php > Laravel WhereIn et GroupBy : comment résoudre l'erreur 1055 de MySQL ?

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

Mary-Kate Olsen
Libérer: 2024-12-07 16:24:13
original
791 Les gens l'ont consulté

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

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 :

  • 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 la liste des champs GroupBy.

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,
    ...
],
Copier après la connexion

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'],
    ...
],
Copier après la connexion

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();
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal