关于MySQL5.5版本与5.7版本执行sql冲突
在运行项目过程中出现的sql异常,大概内容:“SELECT list is not in GROUP BY clause and contains nonaggregated column”;简单来说,就是你的select中的内容与你的group by 中的条件不一致,原因是在MySQL5.7及其上版本对sql做了限制。
可在你的MySQL连接工具中(例如:navicat,sqlyog)使用 :select@@global.sql_mode 命令检查属性;
若结果如下,则说明出现聚合函数绑定效果,即上面提到的select 中的内容与group by 中的语句不一致:
*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。
就是划线处的影响。
针对此冲突,修改方法如下:
临时:同样在你的连接工具中使用命令:set @@global.sql_mode
=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
;
永久:在你的MySQL安装目录下,找到my.ini文件,使用文本编辑器(notepad++,editplus等&#x