某次运行项目,点击某个功能,IDEA的Console报以下错误:Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column...
问题出现的原因是:我本地的MySQL版本是5.7.25,MySQL5.7.5以上的版本默认开启功能依赖检测功能,也就是默认开启ONLY_FULL_GROUP_BY的SQL模式(可以通过select @@global.sql_mode;命令查看)
在此模式下,select列表只能选择出现在group by列表中的列,如下面,前两条语句可以正常执行,第三条就会报前面的错误。
select service from table group by service;
select service, id from table group by service, id;
select service, id from table group by service;
问题解决方法:
执行命令:
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-mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION