错误原因
在MySQL5.7之后,sql_mode
中默认存在ONLY_FULL_GROUP_BY
,SQL语句未通过ONLY_FULL_GROUP_BY
语义检查所以报错。
解决方法
临时解决
1.在MySQL下执行select @@sql_mode;
语句
2.将查询的值内容去除ONLY_FULL_GROUP_BY,
并复制
3.根据情况,执行语句
#只在当前会话窗口生效
set sql_mode ='{第二步中复制的值}'
#只在当前服务生效(重启后生效)
set global 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';
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';