Mysql数据库因only_full_group_by导致group报错
最近工作中遇到了因only_full_group_by导致group报错的问题,记录了一下
解决方法:
进入Mysql数据库后台
select @@sql_mode;
set sql_mode='STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
select @@global.sql_mode;
set @@global.sql_mode=(select replace(@@global.sql_mode,'ONLY_FULL_GROUP_BY','')); #直接 set global.sql_mode='值';会报错
注:重启mysql数据库后会失效
如果需要永久生效,需要修改/etc/my.cnf文件(注意在[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