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
上图中框住的就是罪魁祸首,我们把这个在配置文件中去掉
把my.cnf中的sql_mode的值改为STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
如果配置文件中没有sql_mode就给他加上,因为数据库在读取不到这个值的时候,会使用数据库默认的配置,默认的配置就有ONLY_FULL_GROUP_BY
到此以上问题都结局了
推荐阅读
-
mysql5.7之ONLY_FULL_GROUP_BY问题
-
出现“this is incompatible with sql_mode=only_full_group_by“问题的解决方案
-
“this is incompatible with sql_mode=only_full_group_by“问题解决
-
sql_mode=only_full_group_by问题解决
-
Mysql解决only_full_group_by问题
-
MySql5.7版本问题sql_mode=only_full_group_by的完美解决方案
-
mysql5.7 only_full_group_by问题
-
Docker之MySql5.7中only_full_group_by的问题解决
-
Mysql的sql_mode=only_full_group_by问题解决
-
MySQL5.7版本sql_mode=only_full_group_by问题解决办法