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 ?

Comment corriger l'erreur « Erreur de syntaxe ou violation d'accès : 1055 » de Laravel lors de l'utilisation de WhereIn et GroupBy ?

Barbara Streisand
Libérer: 2024-12-09 09:51:07
original
383 Les gens l'ont consulté

How to Fix Laravel's

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

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!

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