zoukankan      html  css  js  c++  java
  • [MySQL] 5.7版本以上group by语句报1055错误问题

    1. 在5.7版本以上mysql中使用group by语句进行分组时, 如果select的字段 , 不是完全对应的group by后面的字段 , 有其他字段 , 那么就会报这个错误

    ERROR 1055 (42000): Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column

    2.这是因为高版本mysql添加了一个sql_mode

    查看sql_mode 

    select @@sql_mode;

    mysql> select @@sql_mode;
    +-------------------------------------------------------------------------------------------------------------------------------------------+
    | @@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 , 这个就是严格控制group by 和select 字段的 , 在不改变sql语句的前提下 , 把这个去掉就可以了

    3.我的ubuntu系统下编辑的这个文件 /etc/mysql/conf.d/mysql.cnf  , 其他系统找到对应的配置文件就可以了 ,在[mysqld]块下 ,把sql_mode配置上 , 并且去掉ONLY_FULL_GROUP_BY

    sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'

    4.此时就正常了

  • 相关阅读:
    简单算法系列之完数的计算
    毕业了
    通过代码实现截取一定字符的实现
    写点做完一个小项目的教训....
    关于ListView下隐藏控件的解决方案
    用C#实现古代诗词的竖排文字
    获得在查询分析器里执行程序的精确时间以及查询效率问题
    要成功必须知道的12个秘诀!
    WAT网站压力测试工具
    wap网站开发相关知识
  • 原文地址:https://www.cnblogs.com/taoshihan/p/10542668.html
Copyright © 2011-2022 走看看