解决mysql5.7以上版本sql

    技术2022-07-17  65

    同样的一条复杂查询sql,在5.7版本的mysql中执行报错。在5.1版本缺能正常执行。

    提示:…sql_mode=only_full_group_by

    解决

    1.此处解决后面创建的数据库的sql_mode

    select @@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'

    2.此处解决当前数据库sql_mode

    若数据库已经创建好,并在开发中使用着。需要执行如下口令:

    ##切到具体数据库 use dbName; select @@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'

    3.如若上述2种方式依然未能解决,则设置全局变量

    select @@GLOBAL.sql_mode;

    set @@GLOBAL.sql_mode =’’;

    Processed: 0.008, SQL: 9