MySQL在5.7及以上版本中的ONLY_FULL_GROUP_BY问题处理方案

MySQL升级到5.7或者更高的版本时,一些以前GroupBy的操作出现语法报错的情况:

 this is incompatible with sql_mode=only_full_group_by

在这个模式下,我们使用分组查询时,出现在select字段后面的只能是group by后面的分组字段,或使用聚合函数包裹着的字段。

关掉这个模式的方法

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';

或者改my.ini 配置 在 [mysqld]和[mysql]下添加

sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';