mysql5.7以后不支持group by 的问题

292 阅读1分钟

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 去掉!