MySQL提示sql_mode=only_full_group_by解决办法

MySQL异常sql_mode=only_full_group_by

原因:在MySQL 5.7后MySQL默认开启了SQL_MODE严格模式,对数据进行严格校验。
会报sql_mode=only_full_group_by错误说明写的SQL语句不严谨,
对于group by聚合操作,select中的列只能是出现在group by中的列,使用聚合函数除外,如max()、min()等

如以下例子会报错:

改成下面的SQL则不报错:

解决这个问题可以有三个方法:

方法一:
使用 group_concat() 或 any_value()
group_concat():将分到同一组的数据默认用逗号隔开作为返回数据
any_value():将分到同一组的数据里第一条数据的指定列值作为返回数据

修改后语句如下:

方法二:
如果语句太多,变动太大,可以改数据库配置

首先查看当前 sql_mode

可以看到返回以下值:

重新设置,去掉ONLY_FULL_GROUP_BY即可:

当然,如果想去掉所有限制也是可以的:

这个方法的好处是不用重启MySQL生效(需要注意的是在当前会话实例中是不生效的),坏处是重启后会恢复原样。

方法三:
永久生效,修改配置文件my.ini

在[mysqld]模块下新增一行配置:

保存,重启后生效。

Original: https://www.cnblogs.com/woods1815/p/16684345.html
Author: 幽篁晓筑
Title: MySQL提示sql_mode=only_full_group_by解决办法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/606884/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Linux三剑客命令—awk

    一、概念说明 官方概念说明: gawk – pattern scanning and processing language模式扫描和处理文件语言 AWK 是一种处理文…

    Linux 2023年5月27日
    086
  • MySQL——索引结构

    索引:用于快速查找数据。 索引是将数据的一些关键信息通过特定的数据结构存储到一片新的空间中,这样在文件查找的时候能快速找到。 mysql索引类型: B+TREE、HASH、R-TR…

    Linux 2023年6月7日
    098
  • MSSQL·FOR XML PATH语法转义尖括号解决方案

    阅文时长 | 0.14分钟字数统计 | 225.6字符主要内容 | 1、引言&背景 2、示例及解决方案 3、声明与参考资料『MSSQL·FOR XML PATH语法转义尖括…

    Linux 2023年6月14日
    076
  • mit 6.824 lab2B,raft日志复制(lab2D中有关于此处大量代码修改找出了很多错误)

    lab2 说明: https://pdos.csail.mit.edu/6.824/labs/lab-raft.html 参考博客: https://zhuanlan.zhihu….

    Linux 2023年6月7日
    082
  • CentOS7安装MYSQL8.X详细教程

    1-首先查看系统是否存在mysql,无则不返回 rpm -qa|grep mysql 2-安装wget yum -y install wget 3-抓取mariadb并删除包,无则…

    Linux 2023年5月27日
    070
  • linux下利用inode删除文件

    由于 linux下中文编码和在Windows中的中文编码可能不同,在一定的条件下,linux的文件夹可能会存在乱码的情况就算一些乱七八糟的字符。如问号的文件名,这样的文件使用rm …

    Linux 2023年6月6日
    098
  • Python之pexpect详解

    Pexpect程序主要用于人机对话的模拟,就是那种系统提问,人来回答yes/no,或者账号登陆输入用户名和密码等等的情况。因为这种情况特别多而且繁琐,所以很多语言都有各种自己的实现…

    Linux 2023年6月14日
    081
  • Python导入cx_Oracle报错

    系统环境:RHEL5.4 python2.5(手动编译安装,系统带有2.4版本) 在使用python脚本访问数据库时,需要导入cx_Oracle模块 $>>>im…

    Linux 2023年6月14日
    079
  • Netty源码解读(一)-前置准备

    前置条件 源码版本netty4.1 了解Java NIO、Reactor模型和Netty的基本使用。 解释一下: Java NIO:了解BIO和NIO的区别以及Java NIO基础…

    Linux 2023年6月7日
    082
  • Docker部署

    部署Docker 1.部署docker相关 此章描述在新的服务器上安装docker容器。 1.1 概述 Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apach…

    Linux 2023年6月7日
    0126
  • Tomcat

    Tomcat Tomcat tomcat简介 tomcat的用处 部署tomcat 测试访问 访问Host Manager界面 访问Server Status tomcat简介 T…

    Linux 2023年6月6日
    0118
  • python入门基础知识四(字典与集合)

    dict_name = {key1:value1,key2,value2,…} 空字典:dict_name = {} or dict_name = dict() 字典的…

    Linux 2023年6月7日
    055
  • RPA 微信财务报销机器人 竹间智能

    bash;gutter:true; 1、首先通过微信对话机器人收集报销信息及内容 2、上传发票并进行OCR识别 3、收集相关的出差信息,支持对话中修改内容 4、完成信息收集后,后台…

    Linux 2023年6月7日
    086
  • Java并发-建立线程

    一、建立新的线程 方法介绍 1、java.lang.Thread 1.0 Thread(Runnable target) 构造一个新线程,用于调用给定目标的run()方法。 voi…

    Linux 2023年6月7日
    081
  • 设计模式-单例模式

    目的:为了保证一个类在程序中只有一个实例,并且能被全局访问 场景:全局线程池 要点: 通过 Test::Instance()获取类指针 class Test { public: s…

    Linux 2023年6月8日
    082
  • redis八种基本数据类型及其应用

    NoSQL 开发中或多或少都会用到,也是面试必问知识点。最近这几天的面试每一场都问到了。但是感觉回答的并不好,还有很多需要梳理的知识点。这里通过几篇 Redis 笔记整个梳理一遍,…

    Linux 2023年5月28日
    074
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球