Mysql8.0及以上报错only_full_group_by的原因和解决方案
发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章主要介绍"Mysql8.0及以上报错only_full_group_by的原因和解决方案",在日常操作中,相信很多人在Mysql8.0及以上报错only_full_group_by的原因和解决
千家信息网最后更新 2025年01月23日Mysql8.0及以上报错only_full_group_by的原因和解决方案
这篇文章主要介绍"Mysql8.0及以上报错only_full_group_by的原因和解决方案",在日常操作中,相信很多人在Mysql8.0及以上报错only_full_group_by的原因和解决方案问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"Mysql8.0及以上报错only_full_group_by的原因和解决方案"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
今天发现mysql8 关于only_full_group_by的问题,旧代码的查询group by 函数时会出现一个报错信息
ERROR 1055 (42000): Expression #7 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'postscan.verifyDelayLog.auditor' which is not functionally dependent on columns in GROUP BY clause; this is incompatible withsql_mode=only_full_group_by
查了资料,对于 group by 的这种聚合操作,如果在select 中的列,没有在group by 中出现,那么这个SQL是不合法的,因为列不在group by的从句中,所以对于设置了这个mode的数据库,在使用group by 的时候,就要用MAX(),SUM(),ANT_VALUE()的这种聚合函数,才能完成GROUP BY 的聚合操作 兼容方法:
sql修改
输入:SELECT @@GLOBAL.sql_mode; 结果:ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 然后我们来修改sql_mode set GLOBAL sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION';
这个修改再重启之后就失效
修改my.cnf
附sql_mode常用值如下:
ONLY_FULL_GROUP_BY:对于GROUP BY聚合操作,如果在 SELECT 中的列,没有在 GROUP BY 中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中。 NO_AUTO_VALUE_ON_ZERO:该值影响自增长列的插入。默认设置下,插入0或NULL代表生成下一个自增长值。如果用户 希望插入的值为0,而该列又是自增长的,那么这个选项就有用了。 STRICT_TRANS_TABLES:在该模式下,如果一个值不能插入到一个事务表中,则中断当前的操作,对非事务表不做限制 NO_ZERO_IN_DATE:在严格模式下,不允许日期和月份为零 NO_ZERO_DATE:设置该值,mysql数据库不允许插入零日期,插入零日期会抛出错误而不是警告。 ERROR_FOR_DIVISION_BY_ZERO:在INSERT或UPDATE过程中,如果数据被零除,则产生错误而非警告。如 果未给出该模式,那么数据被零除时MySQL返回NULL NO_AUTO_CREATE_USER:禁止GRANT创建密码为空的用户 NO_ENGINE_SUBSTITUTION:如果需要的存储引擎被禁用或未编译,那么抛出错误。不设置此值时,用默认的存储引擎替代,并抛出一个异常 PIPES_AS_CONCAT:将"||"视为字符串的连接操作符而非或运算符,这和Oracle数据库是一样的,也和字符串的拼接函数Concat相类似 ANSI_QUOTES:启用ANSI_QUOTES后,不能用双引号来引用字符串,因为它被解释为识别符
到此,关于"Mysql8.0及以上报错only_full_group_by的原因和解决方案"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
数据
原因
方案
解决方案
学习
函数
字符
字符串
数据库
日期
模式
错误
增长
事务
从句
引擎
方法
更多
用户
资料
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
机房的服务器主机
江西省银行网络安全攻防竞赛
中控考勤软件开发包
腾讯泄露数据库分享
新浪邮箱smtp服务器
网络安全工程师考什么专业
奉贤区智能网络技术开发专业服务
网络安全教育答题江西
公安部采购网络安全产品
sage数据库怎么使用
太原耐特安网络技术有限公司
网络安全网
数据库中通配符有哪些
自建云笔记服务器
天津企业软件开发单价
邓州软件开发哪家好
账户管理数据库设计
郑州市网络技术有限公司
双ip数据库
易语言的对象类型数据库
输入中文数据库登不上
广东网络技术转移代理价钱
山西信考软件服务器怎么下载
治木软件2.0数据库教学
军营网络安全现状
西藏一站式网络技术服务怎么样
数据库怎样实现两行交换值
懒人教育网络技术
dell 服务器设置
阿里云ecs服务器证书