Mysql8.0及以上报错only_full_group_by的原因和解决方案
发表于:2024-11-23 作者:千家信息网编辑
千家信息网最后更新 2024年11月23日,这篇文章主要介绍"Mysql8.0及以上报错only_full_group_by的原因和解决方案",在日常操作中,相信很多人在Mysql8.0及以上报错only_full_group_by的原因和解决
千家信息网最后更新 2024年11月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安全错误
数据库的锁怎样保障安全
育碧服务器失去链接图片
双色球50期数据库
重新启动服务器
腾讯云服务器登录亚马逊
从互联网金融到金融科技的跨越
网络安全书写
模拟应用服务器反复重启
软件开发能造价
树莓派4b可以做什么服务器
索尼笔记本电脑软件开发
温州企业软件开发服务
操作系统服务器如何添加
五强云服务器
软件开发层次结构
泸州宜宾软件开发公司
自学软件开发网
崇明区企业数据库反馈
深圳天泰网络技术招聘
软件开发的类型定义
elte无线网络技术
北京戴尔服务器续保调试
网络安全20年事件
架设传奇服务器
在线恢复数据库
虎丘区正规软件开发信息推荐
长沙星达网络技术
网络安全防诈骗的动漫视频
最新车型数据库
操作系统服务器如何添加
panalog服务器