Maison > base de données > tutoriel mysql > le corps du texte

Une erreur 1055 se produit lors de l'utilisation de l'instruction group by sur MySQL 5.7

little bottle
Libérer: 2019-04-18 10:58:12
avant
2707 Les gens l'ont consulté

Le contenu principal de cet article concerne l'analyse et les solutions de l'erreur 1055 lors de l'utilisation de l'instruction group by sur MySQL 5.7. Les amis dans le besoin peuvent y jeter un œil.

1. Lors de l'utilisation de l'instruction group by pour le regroupement dans MySQL version 5.7 ou supérieure, si le champ sélectionné ne correspond pas exactement au champ après group by, mais contient d'autres champs, alors cette erreur sera signalée

ERREUR 1055 (42000) : L'expression n°1 de la liste SELECT n'est pas dans la clause GROUP BY et contient une colonne non agrégée

2 En effet, la version supérieure de MySQL ajoute un sql_mode

<.>Afficher sql_mode

sélectionnez @@sql_mode;

mysql> sélectionnez @@sql_mode;

+------------------ --- ----------------------------------------------- --- ----------------------------------------------- --- ------------------+
| @@sql_mode                                                                                                                   --------------------- ----------------------------- --------------------- ----------------------------- --------------------+
|ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_pISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION |
+------ ---------------------- ---------------------------- ---------------------- ---------------------------- ---------------------- ----------+

Vous pouvez voir qu'il y a un ONLY_FULL_GROUP_BY, c'est un contrôle strict. Pour les champs group by et select, supprimez-le simplement sans changer l'instruction sql

3. Ce fichier que j'ai édité sous mon système Ubuntu est /etc/mysql/conf.d/mysql , recherchez simplement le fichier de configuration correspondant pour les autres systèmes, configurez sql_mode et supprimez ONLY_FULL_GROUP_BY

sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_pISION_BY_ZERO,NO_AUTO _CREATE_USER,NO_ENGINE_SUBSTITUTION'

C'est normal maintenant

Tutoriels associés : Tutoriel vidéo MySQL

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!

Étiquettes associées:
source:cnblogs.com
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