首页 > 数据库 >MySQL8.0使用GROUP BY的问题

MySQL8.0使用GROUP BY的问题

时间:2022-09-05 20:36:27浏览次数:100  
标签:GROUP NO sql ZERO MySQL8.0 mode 使用 DATE

当使用group by的语句中,select后面跟的列,在group by后面没有时,会报以下错误:

Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'XXX' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

这是MySQL8.0默认开启only_full_group_by模式导致的,该模式限定select后面跟的列,在group by后面必须要有。

解决方式一:该方式重启mysql会失效

1、查询sql_mode:

select @@session.sql_mode;

ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

2、重新设置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'

解决方式二

修改配置文件my.cnf

找到my.cnf,添加一下配置:

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

重启mysql即可。
service mysqld restart

标签:GROUP,NO,sql,ZERO,MySQL8.0,mode,使用,DATE
From: https://www.cnblogs.com/kanie-life/p/16659446.html

相关文章

  • 46 | JAVA_IO_使用Files
    使用Files虽然Files是java.nio包里面的类,但他俩封装了很多读写文件的简单方法,例如,我们要把一个文件的全部内容读取为一个byte[],可以这么写:byte[]data=Files.readAllBy......
  • Java 使用技巧-如何抛出一个异常并捕获它
    工作中需要使用Java编写插件,但并不是主要技术栈,所以简单地学习记录一下。背景与Javascript不同,Java中类型的概念非常强,函数中不能返回与声明不同类型的返回值。例如下面......
  • commons-cli 一点使用
    背景:因项目调用FMIS接口API获取数据,需要获取多个接口进行拉取数据。1 总体上设计思想是:     部署到大数据平台JAR包,需要调用,有多少个表就调用多少次。 ......
  • Jenkins的使用(一)——Jenkins安装
    Jenkins安装一、Jenkins介绍Jenkins是一款著名的可扩展的用于自动化部署的开源CI/CD工具。Jenkins是完全用Java编写的,是在MIT许可下发布的。它有一组强大的功能,......
  • Markdown基础使用学习
    MarkDown学习标题:#+标题名字二级标题:##+标题名字三级... 字体两个*+字+两个=加粗一个=斜体引用一个大于号+内容 图片!【图片名字】(路径)符号全部小写 ......
  • element2.x 的 Cascader 级联选择器懒加载使用及回显
    选择一种做示例:单选选择任意一级选项其中用到的配置选项说明:show-all-levels展示所有等级checkStrictly  来设置父子节点取消选中关联,从而达到选择任意一级选项的目......
  • 第十四章 函数的基本使用
    一、概述基于前一部分的学习,我们已经能开发一些功能简单的小程序了,但随着程序功能的增多,代码量随之增大,此时仍不加区分地把所有功能的实现代码放到一起,将会使得程序的组织......
  • 案例:变量的使用
    案例:变量的使用有个叫卡卡西的人在旅店登记的时候前台让他填一张表,这张表里的内容要存到电脑上,表中的内容有:姓名、年龄、邮箱、家庭住址和工资,存储之后需要把这些信息......
  • vue3之composition-api的使用(包含watch watchEffect)
    是什么composition-api官方介绍vue2:options-api,组件按照选项组织,就是将组件各个部分严格写在methods、computed、watch、data等等里面(特定的区域写特定的代码);vue3:co......
  • 使用Navicat将excel数据导入SQL Server数据库
    新建一张表,点击“导入”选择“Excel文件”选择要导入的sheet页将EXCEL的列名和表的名字对应起来......