zoukankan      html  css  js  c++  java
  • mysql命令gruop by报错this is incompatible with sql_mode=only_full_group_by

    问题如下:

    ERROR 1055 (42000): Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘student.name’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

    查看MySql的版本

    select version();

    查看sql_mode中的内容

    select @@GLOBAL.sql_mode;

     原因:

    mysql5.7 以上默认开启了only_full_group_by选项。我的版本是mysql5.7.27的

    看一下group by的语法:

    select 选取分组中的列+聚合函数 from 表名称 group by 分组的列 

    从语法格式来看,是先有分组,再确定检索的列,检索的列只能在参加分组的列中选。

    我当前Mysql版本5.7.27,

    再看一下ONLY_FULL_GROUP_BY的意思是:对于GROUP BY聚合操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中,也就是说查出来的列

    必须在group by后面出现否则就会报错,或者这个字段出现在聚合函数里面。

    解决办法有两种,第一种是临时解决,数据库重启还会重新出现此问题,第二种是修改mysql的配置文件

    Windows解决办法:

    方法1:
    将查询到的sql_mode中ONLY_FULL_GROUP_BY删去即可,重启就会失效

    set @@GLOBAL.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';


    方法2:
    先找到自己mysql安装路径

    select @@basedir;

    然后进入文件夹找到自己的 my.ini 配置文件,修改 [mysqld] 中的内容,添加下面的内容就可以,然后退出数据库,在服务里面重启MySQL就可以

    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

    Linux解决办法:

    方法1:
    将查询到的sql_mode中ONLY_FULL_GROUP_BY删去即可,重启就会失效

    set @@GLOBAL.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';

    方法2:
    linux上的mysql 的配置文件不叫 my.ini,配置文件在 /etc/my.cnf 

    vim /etc/my.cnf

    修改 [mysqld] 中的内容,添加下面的内容就可以,然后重启MySQL就可以

    sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

     重启命令:

    service mysql restart
  • 相关阅读:
    BATJ面试必会之 Spring 篇(一)
    BATJ面试必会之Java IO 篇
    BATJ面试必会之并发篇
    如何学习JavaEE,项目又该如何做?
    面试官问你“有什么问题问我吗?”,你该如何回答?
    表单输入实时检测
    HTML5实现摇一摇
    加载音频Audio
    关于meta标签
    JS倒计时
  • 原文地址:https://www.cnblogs.com/liyhbk/p/15649093.html
Copyright © 2011-2022 走看看