mysql 8.0 以上 以上版本使用 group by 会报错 only_full_group_by

mysql 8.0 以上版本使用 group by  会报错 

Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column ‘information_schema.PROFILING.SEQ’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

select version() from dual;  查看mysql版本

我们需要改变策略才可以使用,

查看sql_mode
select @@global.sql_mode;

 查询出来的值为:
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

这里 要去掉ONLY_FULL_GROUP_BY,重新设置值。

网上说的改变  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 才可以,然后重启。

set @@global.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

 

你可能感兴趣的:(mysql)