Java教程

sql语句GROUPBY的查询版本问题

本文主要是介绍sql语句GROUPBY的查询版本问题,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在开发项目的时候,遇到了比较老的版本mysql驱动 ,而我使用的是mysql8.0的驱动


 

 

 

 

 

在连接数据库的时候测试一些JSP页面的时候标签链接的时候报了个错误

Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'tmp1.count1'

  

在查询一番之后发现是版本的问题

在5.7的版本后mysq使用新手册声明:

MySQL 5.7.5及以上功能依赖检测功能。如果启用了ONLY_FULL_GROUP_BY
SQL模式(默认情况下),MySQL将拒绝选择列表,HAVING条件或ORDER BY列表的查询引用在GROUP BY子句中既未命名的非集合列,也不在功能上依赖于它们。(5.7.5之前,MySQL没有检测到功能依赖关系,默认情况下不启用ONLY_FULL_GROUP_BY。有关5.7.5之前的行为的说明,请参见“MySQL5.6参考手册”。)

即使需要在数据库中添加相关设置


 

SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));


SELECT @@global.sql_mode

  

 


 

在上述设置之后就可以进行正常维护以前因为老版本导致的写sql不规范的问题 

 

这篇关于sql语句GROUPBY的查询版本问题的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!