一文详解MySQL设置only_full_group_by报错问题


一文详解MySQL设置only_full_group_by报错问题

开发环境连接的 mysql5.6,而测试环境是 mysql5.7。开发中有小伙伴写了有关 group bysql 语句。在开发环境中运行是正常的,而到了测试环境中就发现了异常。

原因分析:MySQL5.7 版本默认设置了 mysql sql_mode = only_full_group_by 属性,导致报错。

其中 ONLY_FULL_GROUP_BY 就是造成这个错误的罪魁祸首了,在这种严格模式下,对于 group by 聚合操作,若在 select 中的列没有在group by 中出现,那么这个 SQL 就是不合法的。因为开发写的 sql 中,select 列不在 group by 从句中,在使用 group by 时就会报错。

测试环境下载安装的是最新版的 mysql5.7.x 版本,默认是开启了 only_full_group_by 模式的。

1. 查看 sql_mode

SELECT` `@@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

2. 去掉ONLY_FULL_GROUP_BY,重新设置值。

SET` `@@``global``.sql_mode =``'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'``;

3. 上面是改变了全局sql_mode,对于新建的数据库有效。

对于已存在的数据库,则需要在对应的数据下执行

SET` `sql_mode =``'STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'``;

以上方法mysql数据库重启后依然无效,下列方式重启后依然生效

找到 MySQL 的配置文件,在 linux 系统上 /etc/my.cnf 文件,查询 sql_mode 字段,我并没有在配置文件中找到这个关键字,所以我手动添加进去:

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

需要注意的一点是一定要添加在 [mysqld] 配置内,这样添加完后重启mysql 才会生效,退出数据库:exit,重启命令:

service mysqld restart

#lnmp重启mysql
lnmp restart mysql

刷新页面报错信息消失成功解决,再次连接上数据库查看 sql_mode 配置 select @@sql_mode :

STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

到此这篇关于 Mysql5.7 及以上版本 ONLY_FULL_GROUP_BY 报错的解决方法的文章就介绍到这了,更多相关 Mysql5.7 ONLY_FULL_GROUP_BY

SONIFY.io SONIFY.io

设计和开发音频优先的产品和数据驱动的解决方案

SONIFY.io 83 查看详情 SONIFY.io

以下为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后,不能用双引号来引用字符串,因为它被解释为识别符。

推荐学习:《MySQL视频教程》

以上就是一文详解MySQL设置only_full_group_by报错问题的详细内容,更多请关注其它相关文章!


# 值为  # 湖北seo关键词排名哪里买  # 网站优化如何引流  # 网络推广网站排名榜  # 高密网站建设网络推广  # 营销方案怎么写网址推广  # 企业网站推广+site  # 橙子营销推广策划方案范文  # 唐山新网站优化  # 智能化网站推广产品介绍  # 麻城seo优化  # only_full_group_by  # 配置文件  # 模式下  # 而非  # 运算符  # 抛出  # 镜像  # 一文  # 重启  # 报错  # mysql 


相关栏目: 【 Google疑问12 】 【 Facebook疑问10 】 【 优化推广96088 】 【 技术知识133117 】 【 IDC资讯59369 】 【 网络运营7196 】 【 IT资讯61894


相关推荐: 在VS Code中利用AI辅助进行代码迁移  作业帮网页版不用下载入口 在线问老师快速答疑  抖音号升级企业号怎么改名字?升级企业号有哪些好处?  如何快速去除厨房重油污? 2025年最好用的厨房清洁剂推荐  《海豚家》注销账号方法  WPS文字如何进行简繁转换  顺丰快递怎么查物流_顺丰快递物流信息实时查询操作指南  店铺如何做视频号推广?做视频号推广有用吗?  背部总是隐隐作痛怎么回事 背痛如何改善  CSS绝对定位与溢出控制:实现背景元素局部显示不触发滚动条  C++中std::thread和std::async的区别_C++并发编程与线程与异步任务比较  怎样让Windows 11的开始菜单恢复经典样式_Open-Shell工具使用指南【怀旧】  《华夏千秋》龙女试炼功法获取方法  Python自动化抓取GBGB赛狗比赛结果:日期范围与赛道筛选教程  todesk如何添加信任设备_todesk信任设备设置教程  win11怎么更改账户类型 Win11标准用户和管理员权限切换【教程】  《领英》查看屏蔽名单方法  qq邮箱格式填写示例 qq邮箱标准填写规范  多闪APP官方下载安装入口_多闪最新版本获取入口  iPhone14无法连接蓝牙设备如何解决  芒果TV官网登录入口 芒果TV官方网站登录入口  《律学法考》查看学习数据方法  掌握产品代码正则表达式:避免常见陷阱与精确匹配  @Team是什么?揭秘团队含义  《波斯王子:失落的王冠》剑术大师打法攻略  Excel宏怎么删除_Excel中删除宏的详细操作流程  如何用mysql开发用户注册登录功能_mysql用户注册登录数据库设计  《雷电模拟器》自动点击设置方法  PDF文件去水印平台入口 PDF水印删除网址  c++如何掌握指针的核心用法_c++指针入门到精通指南  处理含命名空间的XML文件 Power Query中的高级技巧  《淘宝联盟》推广自己的店铺方法  4399正版网页版入口高清直达链接  《万兴喵影》导出视频方法  漫蛙manwa漫画官网链接_漫蛙manwa最新可用网址推荐  Yandex无需登录畅游 俄罗斯搜索引擎最新官网指南  聚水潭ERP后台管理系统登录 聚水潭ERP官方登录通道  《花瓣》创建专辑方法  苹果11如何更换iCloud账号_苹果11账号切换的具体步骤  HTML与J*aScript实现下拉菜单驱动的动态表格:构建交互式维修表单  Win11怎么录屏_Windows 11自带Xbox Game Bar录制视频  韩剧圈正版官网入口_韩剧圈官方指定登录  Sublime怎么配置YAML文件格式化_Sublime YAML Formatter插件教程  鲁班大师乓乓皮肤获取方法  感染了幽门螺杆菌一定会导致胃癌吗?蚂蚁庄园今日答案最新11.30  Apple Music无故扣费引质疑  抖音官网入口快速访问 抖音网页版账号注册解析  如何在CSS中清除浮动解决背景颜色不包裹内容问题_clear after技巧  J*aScript二进制处理_ArrayBuffer与Blob  京东快递包裹信息查询入口 京东快递官方查询平台入口 

 2023-01-24

了解您产品搜索量及市场趋势,制定营销计划

同行竞争及网站分析保障您的广告效果

点击免费数据支持

提交您的需求,1小时内享受我们的专业解答。

运城市盐湖区信雨科技有限公司


运城市盐湖区信雨科技有限公司

运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。

 8156699

 13765294890

 8156699@qq.com

Notice

We and selected third parties use cookies or similar technologies for technical purposes and, with your consent, for other purposes as specified in the cookie policy.
You can consent to the use of such technologies by closing this notice, by interacting with any link or button outside of this notice or by continuing to browse otherwise.