欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

mysql5.7之ONLY_FULL_GROUP_BY问题

程序员文章站 2023-12-28 12:08:22
...

最近在做一个 项目,本地开发环境用的是mysql5.5,为了考虑性能瓶颈,我们计划在客户那边使用mysql5.7版本,当我们部署上去之后,用户真正使用的时候,发生了一些错误,比如

In aggregated query without GROUP BY, expression #2 of SELECT list contains nonaggregated column 'znxd_rjhjxt.b.F_YEAR'; this is incompatible with sql_mode=only_full_group_by

一看这个问题就是使用了group by的问题,但是查询的数据必须要是用group by 来进行分组

最后为了解决当前的这个问题,我们把group by 去掉了

但是在进行查询汇总数据的时候,又出现了这个问题,经过上网查找,是mysql5.7使用查询语句的聚合函数的时候,查询的每一个字段都必须使用聚合函数

最后找到的解决方法是修改数据库中的配置

1.查询数据库使用的模式

SELECT @@sql_mode

mysql5.7之ONLY_FULL_GROUP_BY问题

上图中框住的就是罪魁祸首,我们把这个在配置文件中去掉

把my.cnf中的sql_mode的值改为STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION

如果配置文件中没有sql_mode就给他加上,因为数据库在读取不到这个值的时候,会使用数据库默认的配置,默认的配置就有ONLY_FULL_GROUP_BY

到此以上问题都结局了

 

上一篇:

下一篇: