位置: 编程技术 - 正文

Mysql升级到5.7后遇到的group by查询问题解决(mysql从5.7升级至8.0)

编辑:rootadmin

推荐整理分享Mysql升级到5.7后遇到的group by查询问题解决(mysql从5.7升级至8.0),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:mysql5升级到8,mysql5.0升级到8.0,mysql5.5升级到5.6,mysql5升级到8,mysql5.5升级到5.6,mysql 5.5升级到5.7,mysql5.6升级到5.7,mysql5.6升级到5.7,内容如对您有帮助,希望把文章链接给更多的朋友!

发现问题

最近在将mysql升级到mysql 5.7后,进行一些group by 查询时,比如下面的

就会报如下错误:

原因分析

原因是mysql 5.7 模式中。默认启用了ONLY_FULL_GROUP_BY。

ONLY_FULL_GROUP_BY是MySQL提供的一个sql_mode,通过这个sql_mode来提供SQL语句GROUP BY合法性的检查。

Mysql升级到5.7后遇到的group by查询问题解决(mysql从5.7升级至8.0)

is incompatible with sql_mode=only_full_group_by这句话提示了这违背了mysql的规则,only fully group by,也就是说在执行的时候先分组,根据查询的字段(select的字段)在分组的内容中取出,所以查询的字段全部都应该在group by分组条件内;一种情况例外,查询字段中如果含有聚合函数的字段不用包含在group by中,就像我上面的count(id)。

后来发现Order by排序条件的字段也必须要在group by内,排序的字段也是从分组的字段中取出。 不明白的可以去看一下。

解决办法:

1.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';

去掉ONLY_FULL_GROUP_BY即可正常执行sql.

2. 不去ONLY_FULL_GROUP_BY, 时 select字段必须都在group by分组条件内(含有函数的字段除外)。(如果遇到order by也出现这个问题,同理,order by字段也都要在group by内)。

3.利用ANY_VALUE()这个函数  function is useful for GROUP BY queries when the ONLY_FULL_GROUP_BY SQL mode is enabled, for cases when MySQL rejects a query that you know is valid for reasons that MySQL cannot determine. The function return value and type are the same as the return value and type of its argument, but the function result is not checked for the ONLY_FULL_GROUP_BY SQL mode.

如上面的sql语句可写成

我选用的是第3种方法。

总结

标签: mysql从5.7升级至8.0

本文链接地址:https://www.jiuchutong.com/biancheng/348650.html 转载请保留说明!

上一篇:详解mysql中的静态变量的作用(mysqlusing)

下一篇:Centos7 下Mysql5.7.19安装教程详解

  • 中了单位大奖要缴个税吗?
  • 什么是小规模纳税人税率
  • 服务业按什么结算收入
  • 餐饮注册个体工商户还是注册公司
  • 公司购买的意外险属于个人还是公司
  • 小规模转一般纳税人生效时间
  • 管理费用贷方余额借方是负数怎么结转
  • 专项附加扣除的钱去哪里了
  • 特许权使用费增值税征收品目
  • 其他流动资产的构成
  • 运输公司租入的车辆如何核算
  • 支付宝企业账户客服电话
  • 增值税尾数调整怎么做
  • 研发部门属于哪个会计科目
  • 生产企业成本核算流程及案例
  • 空白发票作废后验旧显示不了
  • 出口业务增值税免抵税额
  • 罚息 增值税
  • 电子普通发票需要盖章吗
  • 为什么查询发票显示查无此票
  • 公司购买的商品给别的企业用了,企业所得税能列支吗
  • 长期投资项目包括哪些
  • 小规模未开票收入如何申报增值税
  • 备用金发票冲抵
  • 利润表里的营业成本包括哪些
  • Win10系统如何修改开机密码
  • 预提费用利息会增加吗
  • 购买加油卡怎么入账
  • 企业减免税款的会计分录
  • 如何使用wordpress建站
  • win10提示病毒
  • 居民企业应纳税额
  • 销售折让怎么开票
  • 高新技术企业加计5%
  • 用彩泥可以做什么食物?
  • javascript获取input的值并计算
  • 朱顶雀的饲养
  • 带着崽崽宠老公免费阅读
  • 预付货款账务处理会计分录
  • 记账凭证和原始凭证都是登记账簿的直接依据
  • 借款费用开始资本化应满足的条件不包括
  • 丑八怪 英文
  • thinkphp yii
  • centos从命令行进入图形
  • 基于核心素养下的大单元教学设计
  • 小程序开发定制
  • last命令详解
  • php源码封装
  • 转出未交增值税怎么算
  • c语言中数组的定义和使用
  • 其他发票包括哪些
  • 小规模纳税人免税怎么做账
  • 编制利润表计算公式
  • 销售bu是什么意思
  • 股权质押和股权抵押有什么区别
  • 无发票材料可以入材料账吗
  • 认缴制下实收资本可以减少吗
  • 一般纳税人普通发票要交增值税吗
  • 开票系统的维护与保养
  • 管家婆里面的记账凭证怎么做?
  • 技术转让要交所得税吗
  • 为什么到期一次还本付息要用债权投资利息调整
  • 小规模公司购买汽车如何抵税
  • 本年利润怎么结账
  • 建账的要点
  • winxp 移动硬盘
  • Vista Virtual PC软件安装XP系统
  • tcp半连接和全连接
  • 进程 cmd
  • win10系统怎么拦截广告弹窗
  • javascript中的数组可以存放任何类型的数据
  • 批处理文件的编写
  • 异步加载场景
  • 鼠标瞬间移动
  • dom事件模型由什么组成
  • javascript对象和方法
  • 北京市国家税务局电子税务局
  • 高新技术企业认定
  • 河南2020年机构改革
  • 煤炭开什么发票
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设