mysql5.7 之 sql_mode=only_full_group_by问题

在使用查询时,使用到了group by 分组查询,报如下错误:

ERROR 1140 (42000): In aggregated query without GROUP BY, expression #1 of SELECT list contains nonaggregated column 'test.fruits.s_id'; this is incompatible with sql_mode=only_full_group_by

报这个错是由于sql_mode 使用了ONLY_FULL_GROUP_BY

解决办法:

1、执行SET GLOBAL sql_mode = ''; 把sql_mode 改成非only_full_group_by模式。验证是否生效 SELECT @@GLOBAL.sql_mode 或 SELECT @@sql_mode
SET 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、如果想要全局生效,需要修改my.cnf配置文件在mysqld组里面添加如下值,然后重启mysql
sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

猜你喜欢

转载自www.cnblogs.com/yjt1993/p/11362954.html