MySQL5.7.x版本出现’1055 Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column..’报错解决方法

出现这个问题的原因是MySQL5.7.x版本对sql语法限制比较严格,select后面出现的字段只能是group by分组后的字段或者聚合函数中的字段。目前没法去一一修改sql查询语句,只能采取关闭 ONLY_FULL_GROUP_BY 这种快捷治标不治本的方式来处理。

//查询sql_mode
select @@global.sql_mode;

//设置
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';

以上sql命令在数据中执行即可,也可以修改mysql配置文件my.ini,在[mysqld]后面增加以下配置。

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

发表评论