zoukankan      html  css  js  c++  java
  • mysql Err 1055

    执行sql查询时,服务器上报错。

    错误原因:在MySQL5.7之后,sql_mode中默认存在ONLY_FULL_GROUP_BY,SQL语句未通过ONLY_FULL_GROUP_BY语义检查所以报错。

    我的查询语句要实现的功能是要筛选出所有单据中最后一次更新的数据,根据单据编码group by,再通过编码和更新时间来order by,本地就没问题,服务器上直接报错。

    原因是:

    执行此条语句:select @@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规定:出现在select中的所有字段都要出现在group by后面。

    修改方式:

    1.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 ';

    2.因为服务器一般限制都会比较严格,如果dba不同意修改此处的全局配置的话,就只能在程序中修改为会话级别的配置了。

    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 ';

    然后再执行查询语句。

  • 相关阅读:
    IP地址分类整理
    PHP
    [转载]数组的全排列问题
    使用 Homebrew 安装 Git
    Homebrew简介及安装
    iOS开发~CocoaPods使用详细说明
    关于目前自己iOS项目使用的第三方开源库
    IOS 时间格式 时间转换 大总结
    Xcode磁盘空间大清理
    Swift百万线程攻破单例(Singleton)模式
  • 原文地址:https://www.cnblogs.com/qiujiababy/p/9548008.html
Copyright © 2011-2022 走看看