问题
mysql5.7以上默认开启了only_full_group_by
办法
- 临时办法
set @@GLOBAL.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
查看是否修改成功
select @@GLOBAL.sql_mode;
查看没有出现 ONLY_FULL_GROUP_BY 即成功
STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
缺点
重启mysql,前面设置的即失效
- 修改my.init文件
在[mysqld]里面 添加如下代码
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
重启mysql