mysql5.7以后不支持group by 的问题解决方法
最近遇到mysql无法使用group,经过反复捣鼓才发现以下解决方法:
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';
set session 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.ini 文件,在文件下写入这段东西便可以解决:
[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
具体原因: 在命令行敲入这条命令:
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 原因 所以上面的目的就是把 ONLY_FULL_GROUP_BY 去掉!