Premièrement, la raison de l'erreur
Après MySQL5.7.5, only_full_group_by devient l'une des options par défaut de sql_mode, ce qui peut entraîner l'échec de certaines instructions SQL.
Par exemple, lorsque group by est utilisé pour la requête de groupe, une erreur est signalée
Deux, la solution
1. Modifiez sql_mode
-- 查询
select @@global.sql_mode
-- 修改
set @@sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
Ce qui précède consiste à modifier le sql_mode global, qui est valide pour la base de données nouvellement créée.
2. Pour les bases de données existantes
set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
De cette façon, les paramètres deviendront invalides après le redémarrage de la base de données. C'est effectivement le cas. La méthode ci-dessus ne modifie que la valeur dans la mémoire et ne peut pas être modifiée définitivement.
3. Enregistrement de la configuration d'origine
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
4. Nouvel enregistrement de configuration
Différence: ONLY_FULL_GROUP_BY est supprimé
STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
5. S'il s'agit d'Alibaba Cloud RDS, modifiez-le avec la nouvelle configuration
-
modifier
-
nous faire parvenir
-
Une partie du contenu ci-dessus provient de la classe Ant http://www.mayikt.com/
-
Projet open source personnel (système de gestion d'arrière-plan universel) -> https://gitee.com/wslxm/spring-boot-plus2 , vous pouvez le vérifier si vous le souhaitez
-
Ceci est la fin de cet article. Si vous le trouvez utile, veuillez l'aimer ou y prêter attention. Nous continuerons de mettre à jour davantage de contenu de temps en temps ... Merci d'avoir regardé!