MYSQL not in GROUP BY clause and contains nonaggregated column 异常临时处理方式

63 阅读1分钟

mysql 客户端执行:

SHOW SESSION VARIABLES;

SHOW GLOBAL VARIABLES;

结果看到   image.png

 

错误原因就是这里:only_full_group_by,MYSQL要求select的列都要在group条件里面;

解决方法:

注意:先执行session的修改,再执行global的修改

分别执行

步骤1:

set session sql_mode= 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

步骤2:

set @@global.sql_mode = 'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

 

 

修改完成后,再查看

SELECT @@global.sql_mode;

结果:

image.png

最后,重启服务,再进行查询调用,生效

【未重启mysql服务,重启了spring boot服务,再调用就可以正常执行,PS:这仅仅是临时处理方式,更优的方式是改sql语句/或者修改MYSQL配置文件的方式】