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 maintenantTutoriels 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!