MySQL Error this is incompatible with sql_mode=only_full_group_by
2017-02-21 18:51
1021 查看
本次问题发生在我将WampServer工具里从 Version 2.2 升级到 Version 3.0.6 64bit
同时也把MySQL从5.5.20升级到5.7.14版本,然后之前写的部分sql语句就出错了。
错误信息:[Err] 1055 - 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
查找文档发现问题就出在升级后的MySQl对 Group by 的限制
ONLY_FULL_GROUP_BY:
对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中
那我们去查看下MySQL里Sql_mode的信息
并没有任何配置信息
再看WampServer里MySQL的配置信息
发现sql_mode是采用默认的配置,并且有配置ONLY_FULL_GROUP_BY 的值
那就好办了,我们重新设置sql_mode的值,并把ONLY_FULL_GROUP_BY去掉不就好了
在my-default.ini 文件里修改sql_mode的值
默认是 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
(这里有个问题,发现这里并没有设置ONLY_FULL_GROUP_BY,不管了先修改吧)
修改为 sql_mode=NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES
修改好保存文件,重新启动MySQL服务。
运行程序发现依然报那个错误,这就纳闷了
查看sql_mode 的信息,发现和开始一样还是 null ,没有任何配置信息
再看WampServer里MySQL的配置信息
会发现sql-model下面多了一项 user mode ,这就是刚才在 my-default.ini 文件里修改的sql_mode的配置
不要犹豫选择它,MqSql服务会自动重启
再看MySql的配置信息
可以看到,我们设置的sql_mode配置启用了
那么检查下结果对不对呢
运行之前出错的语句,成功返回结果。
同时也把MySQL从5.5.20升级到5.7.14版本,然后之前写的部分sql语句就出错了。
错误信息:[Err] 1055 - 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
查找文档发现问题就出在升级后的MySQl对 Group by 的限制
ONLY_FULL_GROUP_BY:
对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中
那我们去查看下MySQL里Sql_mode的信息
并没有任何配置信息
再看WampServer里MySQL的配置信息
发现sql_mode是采用默认的配置,并且有配置ONLY_FULL_GROUP_BY 的值
那就好办了,我们重新设置sql_mode的值,并把ONLY_FULL_GROUP_BY去掉不就好了
在my-default.ini 文件里修改sql_mode的值
默认是 sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
(这里有个问题,发现这里并没有设置ONLY_FULL_GROUP_BY,不管了先修改吧)
修改为 sql_mode=NO_AUTO_VALUE_ON_ZERO,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,
ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION,PIPES_AS_CONCAT,ANSI_QUOTES
修改好保存文件,重新启动MySQL服务。
运行程序发现依然报那个错误,这就纳闷了
查看sql_mode 的信息,发现和开始一样还是 null ,没有任何配置信息
再看WampServer里MySQL的配置信息
会发现sql-model下面多了一项 user mode ,这就是刚才在 my-default.ini 文件里修改的sql_mode的配置
不要犹豫选择它,MqSql服务会自动重启
再看MySql的配置信息
可以看到,我们设置的sql_mode配置启用了
那么检查下结果对不对呢
运行之前出错的语句,成功返回结果。
相关文章推荐
- mysql查询报错: ORDER BY clause is not in GROUP BY..this is incompatible with sql_mode=only_full_group_by
- 解决MySQL 5.7.9版本sql_mode=only_full_group_by问题,this is incompatible with sql_mode=only_full_group_by错误
- mysql5.7.9新特性this is incompatible with sql_mode=only_full_group_by
- MySQL分组查询时出现错误SELECT list is not in GROUP BY ;this is incompatible with sql_mode=only_full_group_by
- mysql5.7 命令gruop by报错 this is incompatible with sql_mode=only_full_group_by
- 解决:mysql 5.7.9 [Err] 1055 ...this is incompatible with sql_mode=only_full_group_by
- mysql语法错误:this is incompatible with sql_mode=only_full_group_by
- [置顶] 【mysql 使用错误解决】this is incompatible with sql_mode=only_full_group_by
- mysql 5.7 this is incompatible with sql_mode=only_full_group_by 问题
- this is incompatible with sql_mode=only_full_group_by
- 报错:this is incompatible with sql_mode=only_full_group_by
- SELECT list is not in GROUP BY clause and contains nonaggregated column this is incompatible with sql_mode=only_full_group_by
- this is incompatible with sql_mode=only_full_group_by
- this is incompatible with sql_mode=only_full_group_by
- mysql查询报错: ORDER BY clause is not in GROUP BY..this is incompatible with sql_mode=only_full_group_by
- mysql5.7建表时报错clause is not in GROUP BY..this is incompatible with sql_mode=only_full_group_by
- [mysql] incompatible with sql_mode=only_full_group_by
- 解决 this is incompatible with sql_mode=only_full_group_by Details 问题 3ff0
- ERROR 1055 (42000): Expression #1 of ORDER BY clause is not in GROUP BY..sql_mode=only_full_group_by
- Mysql 升级到 5.7.16,group by 一直报home brew on columns in GROUP BY clause; this is incompatible with sql