mysql 5.7分组报错问题 Expression #1 of ORDER BY clause is not in GROUP BY clause

解决方案:

select version(),
@@sql_mode;SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

完美的解决方案是:

1 show variables like "sql_mode";
2 
3 set sql_mode='';
4 set sql_mode='NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES';

ONLY_FULL_GROUP_BY 是 MySQL 中的一个 SQL 模式(SQL mode),它对 GROUP BY 语句的使用施加了更为严格的限制,以确保查询结果的确定性和一致性。启用此模式后,当在查询中使用 GROUP BY 子句时,只有被明确包含在 GROUP BY 子句中的列或使用聚合函数(如 COUNT(), SUM(), AVG(), MAX(), MIN() 等)处理的列才能出现在 SELECT 列表、HAVING 条件和 ORDER BY 子句中。这样可以避免由于未完全指定分组条件导致的不确定性和潜在错误。以下是关于 ONLY_FULL_GROUP_BY 的详细说明
作用与目的:
防止数据不一致:在没有启用 ONLY_FULL_GROUP_BY 的情况下,某些数据库系统(如 MySQL 的某些版本,默认未开启该模式)可能允许在 GROUP BY 查询中选择未被明确分组的非聚合列。这种行为可能导致同一分组内返回任意行的值,从而产生不可预期的结果。
提升查询语义清晰度:启用此模式后,开发者必须显式指定所有出现在 SELECT、HAVING 或 ORDER BY 中的非聚合列,这有助于提高查询语句的可读性与维护性,确保其他开发人员或未来自己能清楚理解查询意图。
影响的查询结构:
SELECT 列表:只有被 GROUP BY 明确列出的列或使用聚合函数计算的表达式可以出现在 SELECT 列表中。
HAVING 条件:在 HAVING 子句中引用的列或表达式也必须遵循上述规则,即必须是分组列或聚合函数。
ORDER BY 子句:排序依据的列同样需要是分组列或聚合函数的结果。
启用与禁用:
启用:可以通过以下方式之一启用 ONLY_FULL_GROUP_BY 模式:
在 MySQL 配置文件(如 my.cnf 或 my.ini)的 [mysqld] 部分添加 sql_mode=ONLY_FULL_GROUP_BY,然后重启 MySQL 服务。
在运行时通过 SQL 命令动态设置(对当前会话生效):

总结来说,ONLY_FULL_GROUP_BY 是一个用于增强 SQL 查询语句严谨性和可预测性的 SQL 模式。启用它可以帮助避免因 GROUP BY 使用不当导致的数据不一致性和查询结果的不确定性。在编写涉及分组操作的 SQL 查询时,建议遵循 ONLY_FULL_GROUP_BY 规则,以确保查询的准确性和可维护性。

当然根据实际情况,如果要保留这种模式,那么就去修改相关的SQL 也是解决方案之一

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/1865.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

分布式与一致性协议之拜占庭将军问题(一)

拜占庭将军问题 概述 拜占庭将军问题其实是借拜占庭将军故事展现了分布式共识问题,探讨和论证了解决的办法。实际上,拜占庭将军问题是分布式领域最复杂的一个容错模型,一旦搞懂了它,久能掌握分布式共识问题的解决思路&#xff0…

Oracle21C 引入HR实例(linux)

1、下载资源 https://github.com/oracle-samples/db-sample-schemas点击code(代码)下载 2、上传Sql文件 解压之后将human_resources里的文件复制到demo\schema\目录(具体目录前面的路径是你安装的路径)下,如下图 3、…

【LLM】LLM API 开发

文章目录 LLM API 开发LLM入门基本概念LLM API使用实名认证创建应用使用API Prompt Engineering思考总结 参考文章 什么是提示工程(Prompt Engineering)? ChatGPT Prompt 最佳指南一 LLM API 开发 LLM入门基本概念 Prompt Prompt 最初是 NL…

TFTLCD原理硬件介绍

介绍 TFT LCD(薄膜晶体管液晶显示器)是一种广泛使用的显示技术,它结合了薄膜晶体管(TFT)和液晶显示(LCD)技术。TFT LCD的主要特点是使用TFT矩阵来控制施加到每个像素的电压,从而实现…

Rumble Club加速器哪个好用 稳定好用的联机加速器推荐

Rumble Club加速器哪个好用 稳定好用的联机加速器推荐 说到Rumble Club这款游戏,各位休闲玩家肯定不陌生,这是一款基于物理定律的在线玩家对战游戏,玩法独特且充满乐趣。玩家可以使用各种富有想象力的方式推搡、击打和超越对手,以…

通过Docker新建并使用MySQL数据库

1. 安装Docker 确保您的系统上已经安装了Docker。可以通过以下命令检查Docker是否安装并运行: systemctl status docker如果没有安装或运行,请按照官方文档进行安装和启动。 2. 拉取MySQL镜像 从Docker Hub拉取MySQL官方镜像。这里以MySQL 5.7版本为…

防水游泳耳机有哪些?热推榜4大精品游泳耳机,绝不失望!

随着科技的发展和人们对生活品质追求的提高,防水游泳耳机已经成为许多游泳爱好者的必备装备。它们不仅能够在水下提供清晰的音质,还能保证使用者的安全,避免因长时间水下活动而对耳朵造成损伤。然而,面对市场上琳琅满目的产品&…

HarmonyOS ArkUI实战开发-NAPI数据类型

在前两篇文章里笔者简单介绍了 NAPI 工程结构以及生成的 cpp 源码部分,其中 JS 应用层传递过来的数据被封装在了 napi_value 中,使用前先要转换成对应的 C/C 数据类型,C/C 端的数据也要转换成 napi_value 数据类型传递给 JS 应用层&#xff0…

数字化革新:可视化墨水屏引领基板工艺MSAP贴膜阶段迈向无纸化高端制造应用背景

随着科技的飞速发展和环境保护意识的日益增强,制造印刷电路板(PCB)行业正面临着提升生产效率、降低资源消耗和推动绿色制造的迫切需求。 问题: PCB生产过程对洁净度要求高,传统打印的纸张会有粉尘,纸屑&am…

使用【node】创建本地接口

在前端开发的过程中,接口相关的信息一般是由后端处理好返回给前端,但是有时候后端不在的时候想自己写个接口进行测试是非常麻烦的。 node是前端一个不错的写接口工具 一 初始化文件 1 在新建一个空的文件夹node 进入空文件夹在,文件夹的地…

社会工程渗透测试教程(二)

原文:annas-archive.org/md5/db987a87e1478b8a8617c263c631b477 译者:飞龙 协议:CC BY-NC-SA 4.0 第六章:通过有效的威胁建模确保价值 Richard Ackroyd,随机风暴有限公司高级安全工程师 大多数客户意识到他们需要社会…

第25天:安全开发-PHP应用文件管理包含写入删除下载上传遍历安全

第二十五天 一、PHP文件管理-下载&删除功能实现 1.文件上传: 无过滤机制黑名单过滤机制白名单过滤机制文件类型过滤机制 2.文件删除: unlink() 文件删除函数调用命令删除:system shell_exec exec等 3. 文件下载: 修改HT…

咱们来唠唠2024年参加三下乡社会实践活动怎样联系媒体投稿?

作为一名在校大学生,我深深珍视每一次增长见识、锻炼能力的机会,每年寒暑假期间,我都积极参与学院的“三下乡”社会实践活动。这不仅是我贴近生活、体验基层的大好时机,更是我积累人生经验、拓宽视野的重要途径。每次活动结束后,按照学院的要求,我们需要将实践纪实整理成文,向各…

WebRTC直播间搭建记录

考虑到后续增加平台直播的可能性,笔记记录一下WebRTC相关. 让我们分别分析两种情况下的WebRTC连接建立过程: 情况一:AB之间可以直接通信 1.信令交换: 设备A和设备B首先通过信令服务器交换SDP(Session Description Pr…

就业班 第三阶段(nginx) 2401--4.22 day1 nginx1 http+nginx初识+配置+虚拟主机

一、HTTP 介绍 HTTP协议是Hyper Text Transfer Protocol(超文本传输协议)的缩写,是用于从万维网(WWW:World Wide Web )服务器传输超文本到本地浏览器的传送协议。 HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件…

PLC_博图系列☞N=:在信号下降沿置位操作数

、 PLC_博图系列☞N:在信号下降沿置位操作数 文章目录 PLC_博图系列☞N:在信号下降沿置位操作数背景介绍N: 在信号下降沿置位操作数说明参数示例 关键字: PLC、 西门子、 博图、 Siemens 、 N 背景介绍 这是一篇关于PLC编程的…

【C语言】strstr函数刨析-----字符串查找

目录 一、strstr 函数介绍 ✨函数头文件: ✨函数原型: ✨函数解读 ✨功能演示 二、函数的原理以及模拟实现 ✨函数原理 ✨函数的模拟实现 三、strstr函数的注意事项 四、共勉 一、strstr 函数介绍 strstr函数是在一个字符串中查找另一个字符…

了解IPS和IDS:这5个差异将改变你的安全观念!

IPS 代表 入侵防御系统(Intrusion Prevention System),它是 IDS 的进一步发展,不仅具备检测攻击的能力,还能在检测到攻击后主动采取措施阻止攻击。IPS 通常部署在防火墙和网络设备之间,能够深度感知并检测流…

计算机服务器中了locked勒索病毒怎么办,locked勒索病毒解密工具流程步骤

随着网络技术的不断应用与发展,越来越多的企业离不开网络,网络大大提升了企业的办公效率水平,也为企业的带来快速发展,对于企业来说,网络数据安全成为了大家关心的主要话题。近日,云天数据恢复中心接到多家…

程序员缓解工作压力的小窍门

目录 1.概述 2.工作与休息的平衡 3.心理健康与自我关怀 4.社交与网络建设 1.概述 作为程序员,缓解工作压力是非常重要的。压力太大有可能会写很多bug。我们可以采取以下方法来保持高效和创新,同时维护个人健康和工作热情。 定时休息:保持…