Maison >base de données >tutoriel mysql >Une erreur 1055 se produit lors de l'utilisation de l'instruction group by sur MySQL 5.7

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

little bottle
little bottleavant
2019-04-18 10:58:122755parcourir

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer