zoukankan      html  css  js  c++  java
  • 【mysql报错】MySQL5.7.27报错[Err] 1055

    mysql5.7.27在运行更新语句时出现如下情况,mysql5.6之前没有这种情况出现。

    [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

    原因

    mysql5.7.5后,ONLY_FULL_GROUP_BY 默认为真,那么此时select中的字段必须出现在group by中,但是我们使用的语句时5.6的就语句。所以显而易见,旧新版本的问题。

     你可以使用语句查询自己数据库的版本

    SELECT VERSION();

    解决方法

    先查看sql_mode

    SHOW VARIABLES LIKE '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

    设置sql_mode的值,去掉"ONLY_FULL_GROUP_BY"

    # mysql5.6版本的sql_mode为:STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION
    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';

    最后运行更新语句则不会报错了

    UPDATE 表名 t SET t.需要需改的字段名 = '需要修改的值' where t.根据条件字段1 = '条件字段1值' and t.条件字段2= '条件字段2值';

    如下图所示,没有报错信息

  • 相关阅读:
    国外物联网平台(8):Telit
    国外物联网平台(7):FogHorn
    国外物联网平台(6):Electric Imp
    国外物联网平台(5):Exosite Murano
    国外物联网平台(4):Ayla Networks
    国内物联网平台(8):中移物联网开放平台OneNet
    Backbone入门讲解
    underscore.js库的浅析
    Backbone框架浅析
    Handlebars模板库浅析
  • 原文地址:https://www.cnblogs.com/HeiDi-BoKe/p/11470937.html
Copyright © 2011-2022 走看看