Maison  >  Article  >  base de données  >  Comment corriger l'erreur « Incompatible avec sql_mode=only_full_group_by » dans Laravel Eloquent ?

Comment corriger l'erreur « Incompatible avec sql_mode=only_full_group_by » dans Laravel Eloquent ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-11-23 12:10:19292parcourir

How to Fix the

Résolution de l'erreur incompatible avec sql_mode=only_full_group_by dans Laravel Eloquent

Les requêtes Laravel Eloquent peuvent rencontrer l'erreur "Incompatible avec sql_mode=only_full_group_by" lorsque le la requête inclut des colonnes non agrégées dans la liste SELECT qui ne sont pas fonctionnellement dépendant des colonnes de la clause GROUP BY. Pour résoudre ce problème, le mode strict MySQL peut être désactivé dans les paramètres de connexion à la base de données.

Dans l'exemple de code fourni, la requête est regroupée par store_id et triée par update_at, mais la colonne id est également incluse dans le Liste SELECT. Étant donné que l'identifiant ne dépend pas fonctionnellement de store_id, il ne peut pas être inclus dans la liste SELECT sans agrégation.

Pour résoudre l'erreur, désactivez le mode strict MySQL en ajoutant la configuration suivante aux paramètres de connexion à votre base de données dans le fichier config/database Fichier .php :

'connections' => [
    'mysql' => [
        // Behave like MySQL 5.6
        'strict' => false,

        // Behave like MySQL 5.7
        'strict' => true,
    ]
]

La désactivation du mode strict permet d'inclure les colonnes non agrégées dans la liste SELECT même si elles ne dépendent pas fonctionnellement des colonnes de la clause GROUP BY.

Paramètres de configuration supplémentaires

D'autres options de configuration liées au mode strict peuvent être trouvées dans le billet de blog de Matt Stauffer :

  • https://mattsauer.com/blog/laravel-5-3-group-by-hack-with-mysql-strict-mode

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!

Déclaration:
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