#1055 - Expression de la liste de sélection n'est pas dans la clause GROUP BY et contient nonaggregated colonne ce qui est incompatible avec sql_mode=only_full_group_by
ma Requête :
select libelle,credit_initial,disponible_v,sum(montant) as montant
FROM fiche,annee,type where type.id_type=annee.id_type and annee.id_annee=fiche.id_annee
and annee = year(current_timestamp) GROUP BY libelle order by libelle asc
- Mysql 5.7.9 exécute la requête sans aucun problème, mais mysql 5.7.12
l'affichage de l'erreur ci-dessus Pourriez-vous s'il vous plaît aidez-moi avec qui
- il vous attend à avoir libelle, credit_initila, et disponible_v tous dans le groupe par la déclaration
- mechanics.flite.com/blog/2013/02/12/...
- Double Possible de j'obtiens une erreur MySql liées à only_full_group_by lors de l'exécution d'une requête
- le problème est sur mysql lui-même et non dans la requête
Vous devez vous connecter pour publier un commentaire.
J'ai eu une lutte pour obtenir que cela fonctionne je l'ai testé et il fonctionne sur lampe serveur mysql version 5.12
Donc, pas vers le succès:
sudo vim /etc/mysql/conf.d/mysql.cnf
Faites défiler vers le bas de la Copie de fichier et collez
[mysqld]
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
à la fin du fichier
sudo service mysql restart
redémarrer MySQL.Fait!
show global variables like 'sql_mode';
/etc/mysql/my.cnf
[mysqld]
avec[mysql]
comme je l'ai fait.SELECT @@sql_mode;
Cela a fonctionné pour moi:
Vous pourriez avoir besoin de sudo pour la première étape:
Vous devez spécifier toutes les colonnes que vous ne l'utilisez pas pour une fonction d'agrégation dans votre
GROUP BY
clause de ce genre:La
full_group_by
mode essentiellement fait de vous écrire plus idiomatiques SQL. Vous pouvez désactiver ce paramètre si vous le souhaitez. Il y a différentes façons de le faire qui sont décrits dans le Documentation De MySQL. Voici MySQL définition de ce que j'ai dit ci-dessus:Vous obtenez l'erreur parce que vous êtes sur une version < 5.7.5
Vous pouvez désactiver
sql_mode=only_full_group_by
par certains de commande, vous pouvez essayer ce par terminal server ou MySql IDE
J'ai essayé et a travaillé pour moi.
Merci 🙂
Solution 1: Supprimer ONLY_FULL_GROUP_BY de console mysql
vous pouvez en lire plus ici
Solution 2: Supprimer ONLY_FULL_GROUP_BY partir de phpmyadmin
Vous avez à agréger par quoi que ce soit
NOT IN
lagroup by
clause.Donc,il ya deux options...Ajouter Credit_Initial et Disponible_v à la
group by
OU
Changer
MAX( Credit_Initial ) as Credit_Initial, MAX( Disponible_v ) as Disponible_v
si vous connaissez les valeurs de la constante de toute façon et n'ont aucun autre impact.Base ond defualt config de 5.7.5 ONLY_FULL_GROUP_BY
Vous devez utiliser tous les pas de colonne d'agrégation dans votre groupe de
il suffit d'aller à la fenêtre en bas à bac cliquez sur l'icône de wamp ,cliquez sur mysql->mon.ini,puis il y a une option ;sql-mode=""
décommentez cette ligne de faire comme sql-mode=""
et redémarrer wamp
a travaillé pour moi