当前位置: 首页 > news >正文

【报错解决】MySQL报错:sql_mode=only_full_group_by

文章目录
  • 报错信息
    • DataGrip 报错还原
    • Navicat 报错还原
  • 报错原因
  • 解决方案
    • 查看当前 sql mode
    • 方案一:临时解决
    • 方案二:永久解决
    • 方案三:使用 any_value() 或 group_concat()
    • 方案四:调整实现思路,避开 GROUP BY 使用

我是一名立志把细节说清楚的博主,欢迎【关注】?? ~

原创不易, 如果有帮助 ,记得【点赞】【收藏】 哦~ (^_-)~

如有错误、疑惑,欢迎【评论】指正探讨,我会尽可能第一时间回复的,谢谢支持


报错信息

DataGrip 报错还原

[42000][1055] Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘xx库.xx表.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

在这里插入图片描述

Navicat 报错还原

1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ‘school.student_100w.id’ which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

在这里插入图片描述

报错原因

MySQL 5.7后,MySQL的 SQL_MODE 配置项会默认包含 only_full_group_by 模式,这个配置会严格执行SQL92标准。如果代码中含有group by聚合操作,那么select中的列,除了使用聚合函数之外的,如max()、min()等,都必须出现在group by中。

要求:从学生表中,根据班级编号,分组查询班级编号、班级名称。

报错:SELECT 查询的字段和 GROUP BY 分组依据的字段不统一。

# SELECT 查询的字段和 GROUP BY 分组依据的字段不统一,会报错。
SELECT class_number, class_name FROM student GROUP BY class_number;

调整:将SELECT 查询的字段和 GROUP BY 分组依据的字段统一。

# SELECT 查询字段和 GROUP BY 分组依据的字段统一后就不会报错。
SELECT class_number, class_name FROM student GROUP BY class_number, class_name ;# SELECT 查询字段和 GROUP BY 分组依据的字段统一后就不会报错。
SELECT class_number FROM student GROUP BY class_number;

解决方案

查看当前 sql mode

执行 SQL 语句,查看当前的 sql_mode

SELECT @@global.sql_mode;

注意默认的列宽可能无法直接查看全部内容,容易造成误解,需要手动拉伸列宽查看。

在这里插入图片描述
拉伸列宽后可查看全部内容,(不同版本的 MySQL 默认值可能不同)。

在这里插入图片描述

方案一:临时解决

排除当前 sql_modeONLY_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';

但是如果当前数据库重启后,还是回归默认设置,即包含 ONLY_FULL_GROUP_BY 模式。

方案二:永久解决

  • windows系统,直接修改 my.ini 配置文件。
    在这里插入图片描述

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

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

注意:

  • 不能有多余的符号,我之前在结尾加了分号导致重启失败。
  • 点击保存文件,不要直接关掉。 不然设置丢失,是不会生效的。

![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/f6c6cb0048814855854fefede42f0be4.png

Linux系统,思路是一样的,都是找配置文件修改配置。但是不同Mysql版本,路径和配置文件名称可能不同:大致可能是 /etc/my.cnf 或者 /mysql.conf 之类的名称。

数据库重启后生效。

方案三:使用 any_value() 或 group_concat()

  • any_value():

    • 将分到同一组的数据里第一条数据的指定列值作为返回数据。 (any_value()函数就是MySQL提供的用来抑制ONLY_FULL_GROUP_BY值被拒绝的)

    SELECT class_number, any_value(class_name) FROM student GROUP BY class_number;

实际使用效果如下:

在这里插入图片描述

  • group_concat():

    • 将分到同一组的数据默认用逗号隔开作为返回数据。

    SELECT class_number, group_concat(class_name) FROM student GROUP BY class_number;

实际使用效果如下:

在这里插入图片描述

方案四:调整实现思路,避开 GROUP BY 使用

通过对SQL的查询思路调整,代码逻辑调整等,部分场景是可以绕开对 GROUP BY 关键字筛选依赖的。这个需要结合实际业务场景,自己去思考调整了。


我是一名立志把细节说清楚的博主,欢迎【关注】?? ~

原创不易, 如果有帮助 ,记得【点赞】【收藏】 哦~ (^_-)~

如有错误、疑惑 ,欢迎【评论】指正探讨,我会尽可能第一时间回复的,谢谢支持

相关文章:

【报错解决】MySQL报错:sql_mode=only_full_group_by

文章目录 报错信息 DataGrip 报错还原Navicat 报错还原 报错原因解决方案 查看当前 sql mode方案一:临时解决方案二:永久解决方案三:使用 any_value() 或 group_concat()方案四:调整实现思路,避开 GROUP BY 使用 我…...

【大数据技术】用户行为日志分析(python+hadoop+mapreduce+yarn+hive)

用户行为日志分析(pythonhadoopmapreduceyarnhive) 搭建完全分布式高可用大数据集群(VMwareCentOSFinalShell) 搭建完全分布式高可用大数据集群(HadoopMapReduceYarn) 本机PyCharm远程连接虚拟机Python …...

[Day 16]螺旋遍历二维数组

今天我们看一下力扣上的这个题目:146.螺旋遍历二维数组 题目描述: 给定一个二维数组 array,请返回「螺旋遍历」该数组的结果。 螺旋遍历:从左上角开始,按照 向右、向下、向左、向上 的顺序 依次 提取元素&#xff0c…...

大模型的底层逻辑及Transformer架构

一、大模型的底层逻辑 1.数据驱动 大模型依赖海量的数据进行训练,数据的质量和数量直接影响模型的性能。通过大量的数据,模型能够学习到丰富的模式和规律,从而更好地处理各种任务。 2.深度学习架构 大模型基于深度学习技术,通常采用多层神经网络进行特征学习与抽象。其中…...

数据结构-基础

1、概念: 程序 数据结构 算法 2、程序的好坏 可读性,稳定性,扩展性,时间复杂度,空间复杂度。 3、数据结构 是指存储、组织数据的方式,以便高效地进行访问和修改。通过选择适当的数据结构, 能…...

SystemUI中NavigationBar分析

需求 SystemUI是一个与系统组件显示紧密相关的应用,包含快捷中心、消息通知、状态栏、导航栏、任务中心等诸多模块,本文介绍NavigationBar模块。SystemUI源码位于/frameworks/base/packages/SystemUI,Android13平台。NavigationBar显示如下&…...

MySQL的底层原理与架构

前言 了解MySQL的架构和原理对于很多的后续很多的操作会有很大的帮助与理解。并且很多知识都与底层架构相关联。 了解MySQL架构 通过上面的架构图可以得知,Server层中主要由 连接器、查询缓存、解析器/分析器、优化器、执行器 几部分组成的,下面将主要…...

三极管的截止、放大、饱和区

三极管的几个区,都有什么用: 截止区:晶体管不导通,用于开关电路的“关”状态。 放大区:晶体管用于信号放大,集电极电流与基极电流成正比。 饱和区:晶体管完全导通,用于开关电路的“…...

2025-2-7-算法学习(一) 动态规划-习题1 300.最长递增子序列

文章目录 算法学习(一) 动态规划-习题1 300.最长递增子序列(1)题目(2)举例:(3)提示(4)分析(5)动态规划代码:&a…...

学习日记-250207

一.论文 1.Prompt Learning for News Recommendation 任务不一致(LLM与实际任务)产生prompt提示。 Prompt Learning for News Recommendation 论文阅读 SIGIR2023-CSDN博客 2.GPT4Rec: A Generative Framework for Personalized Recommendation and…...

【Block总结】PSA,金字塔挤压注意力,解决传统注意力机制在捕获多尺度特征时的局限性

论文信息 标题: EPSANet: An Efficient Pyramid Squeeze Attention Block on Convolutional Neural Network论文链接: arXivGitHub链接: https://github.com/murufeng/EPSANet 创新点 EPSANet提出了一种新颖的金字塔挤压注意力(PSA)模块,旨…...

代码随想录算法训练营第三十一天| 回溯算法04

491. 递增子序列 题目: 代码随想录 视频讲解:回溯算法精讲,树层去重与树枝去重 | LeetCode:491.递增子序列_哔哩哔哩_bilibili 这题需要注意的点: 1. path长度在2以上才放入最终结果 2. 需要记录已经使用过的数字&am…...

pycharm集成通义灵码应用

在pycharm中安装通义灵码 1、打开files-settings 2、选中plugins-搜索”TONGYI Lingma“,点击安装 3.安装完成后在pycharm的右侧就有通义灵码的标签 4、登录账号 5、查看代码区域代码,每一个方法前面都多了通义灵码的标识,可以直接选择…...

赛博算命之 ”梅花易数“ 的 “JAVA“ 实现 ——从玄学到科学的探索

hello~朋友们!好久不见! 今天给大家带来赛博算命第三期——梅花易数的java实现 赛博算命系列文章: 周易六十四卦 掐指一算——小六壬 更多优质文章:个人主页 JAVA系列:JAVA 大佬们互三哦~互三必回!&#xf…...

【Leetcode刷题记录】54. 螺旋矩阵--模拟,以及循环条件处理的一些细节

54. 螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix ,请按照 顺时针螺旋顺序 ,返回矩阵中的所有元素。 示例 1: 输入:matrix [[1,2,3],[4,5,6],[7,8,9]] 输出:[1,2,3,6,9,8,7,4,5] 解题思路 顺时针螺旋顺序也就是“从左向…...

c++计算机教程

目的 做出-*/%计算机 要求 做出可以计算-*/%的计算机 实现 完整代码 #include<bits/stdc.h> int main() {std::cout<<"加 减- 乘* 除/ 取余% \没有了|(因为可以算三位)"<<"\n"<<"提示:每打完一个符号或打完一个数,\…...

蓝桥杯Java之输入输出练习题

题目 1&#xff1a;多组AB&#xff08;基础版&#xff09; 题目描述&#xff1a; 输入多组数据&#xff0c;每组数据包含两个整数 A 和 B&#xff0c;计算它们的和。输入以 文件结尾&#xff08;EOF&#xff09; 结束。 输入格式&#xff1a; 每行包含两个整数 A 和 B&#x…...

【R语言】环境空间

一、环境空间的特点 环境空间是一种特殊类型的变量&#xff0c;它可以像其它变量一样被分配和操作&#xff0c;还可以以参数的形式传递给函数。 R语言中环境空间具有如下3个特点&#xff1a; 1、对象名称唯一性 此特点指的是在不同的环境空间中可以有同名的变量出现&#x…...

【系统架构设计师】分布式数据库透明性

目录 1. 说明2. 分片透明3. 复制透明4. 位置透明5. 逻辑透明&#xff08;局部数据模型透明&#xff09;6.例题6.1 例题1 1. 说明 1.在分布式数据库系统中&#xff0c;分片透明、复制透明、位置透明和逻辑透明是几个重要的基本概念。2.分片透明、复制透明、位置透明和逻辑透明是…...

openpnp2.2 - 环境搭建 - 编译 + 调试 + 打包

文章目录 openpnp2.2 - 环境搭建 - 编译 调试 打包概述笔记前置任务克隆代码库切到最新的tag清理干净编译工程关掉旧工程打开已经克隆好的openpnp2.2工程将IDEA的SDK配置为openjdk23 切换中英文UI设置JAVA编译器 构建工程跑测试用例单步调试下断点导出工程的JAR包安装install…...

别再手动输数据了!手把手教你用Fluent的Profile功能导入实验数据(附CSV文件模板)

别再手动输数据了&#xff01;手把手教你用Fluent的Profile功能导入实验数据&#xff08;附CSV文件模板&#xff09; 在计算流体力学&#xff08;CFD&#xff09;分析中&#xff0c;准确导入实验数据或第三方软件的计算结果作为边界条件&#xff0c;往往是确保仿真可靠性的关键…...

使用HIP编写GPU 算子向量加法

HIP (Heterogeneous-compute Interface for Portability) 来编写一个 GPU 算子&#xff08;operator&#xff09;。HIP 是 AMD 推出的 GPU 编程接口&#xff0c;类似 CUDA&#xff0c;但可在 AMD 和 NVIDIA GPU 上运行。下面我给你一个完整示例&#xff0c;演示如何写一个简单算…...

LightGlue深度解析:自适应神经网络特征匹配架构剖析与性能优化

LightGlue深度解析&#xff1a;自适应神经网络特征匹配架构剖析与性能优化 【免费下载链接】LightGlue LightGlue: Local Feature Matching at Light Speed (ICCV 2023) 项目地址: https://gitcode.com/gh_mirrors/li/LightGlue LightGlue作为ICCV 2023提出的革命性特征…...

MPLAB Harmony 2.0固件框架:从MISRA-C合规到图形化开发的嵌入式开发新范式

1. 项目概述&#xff1a;为什么我们需要一个“全功能”的固件框架&#xff1f;如果你和我一样&#xff0c;在PIC32单片机的世界里摸爬滚打过几年&#xff0c;肯定经历过这样的场景&#xff1a;项目启动&#xff0c;面对Microchip提供的海量外设库、驱动代码和中间件&#xff0c…...

AlphaAvatar:从单目视频重建可驱动3D数字人的混合表示框架

1. 项目概述&#xff1a;从“数字人”到“阿尔法化身”的进化最近在数字人、虚拟形象生成这个圈子里&#xff0c;AlphaAvatar这个名字开始被频繁提及。它不是一个简单的换脸工具&#xff0c;也不是一个预设的3D模型库&#xff0c;而是一个旨在从单目视频中&#xff0c;高质量、…...

Go语言外部服务调用可靠性实践:Icepick库的重试、熔断与并发控制

1. 项目概述与核心价值 最近在折腾一个需要深度集成多个外部API的后端服务&#xff0c;遇到了一个老生常谈但又极其棘手的问题&#xff1a;如何优雅、可靠地处理那些可能失败的外部调用&#xff1f;重试、熔断、降级、超时控制……这些概念听起来都懂&#xff0c;但真要把它们组…...

fastmod vs codemod:为什么你应该选择这个更快的代码替换工具

fastmod vs codemod&#xff1a;为什么你应该选择这个更快的代码替换工具 【免费下载链接】fastmod A fast partial replacement for the codemod tool. Assists with large-scale codebase refactors via regex-based find and replace with human oversight and occasional i…...

去人类中心化研究引擎:AI如何突破学科壁垒驱动科研创新

1. 项目概述&#xff1a;一个“去人类中心化”的研究引擎最近在GitHub上看到一个挺有意思的项目&#xff0c;叫“De-Anthropocentric-Research-Engine”&#xff0c;直译过来就是“去人类中心化研究引擎”。第一眼看到这个标题&#xff0c;你可能和我一样&#xff0c;脑子里会冒…...

避开这3个坑,你的HMC7044时钟输出才稳定:从VCO选择到奇数分频实战

HMC7044时钟系统设计避坑指南&#xff1a;从VCO选型到分频配置的工程实践 在高速数字系统设计中&#xff0c;时钟信号的稳定性往往决定着整个系统的性能上限。作为业界广泛使用的高性能时钟发生器&#xff0c;HMC7044凭借其出色的抖动性能和灵活的配置选项&#xff0c;成为众多…...

开源机械爪应用宝库:从视觉分拣到项目实战全解析

1. 项目概述&#xff1a;一个开源“机械爪”用例的灵感宝库如果你对机器人、自动化或者开源硬件感兴趣&#xff0c;最近在GitHub上闲逛时&#xff0c;可能刷到过一个叫hesamsheikh/awesome-openclaw-usecases的仓库。光看名字&#xff0c;就能猜个八九不离十&#xff1a;这是一…...