位置: 编程技术 - 正文

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安装教程详解

  • 公司全额承担个税怎么申报
  • 外贸企业出口退税申报流程操作
  • 固定资产清理期末余额在借方是什么意思
  • 税务局季度报表怎么做
  • 医院增值税免税性质代码是什么
  • 融资租入固定资产的入账价值
  • 应付债券利息计入哪里
  • 外商投资企业啥意思
  • 小企业销售材料计入什么科目借方记什么
  • 转让土地缴纳增值税进项如何抵扣
  • 融资的方式有哪两种类型
  • 润滑油消费税征税环节
  • 增值税需要自己交吗
  • 递延所得税费用影响净利润吗
  • 差旅费住宿专票可以抵扣增值税吗
  • 金税盘费用到期
  • 存货盘亏应该计什么科目
  • 三代税款手续费是什么意思
  • 发票勾选了是否就抵扣了
  • 享受小型微利企业标准
  • 固定资产的折旧从什么时候开始
  • 企业代扣员工社保怎样做分录
  • 总分类账是什么的依据
  • win7网络连接在哪里打开
  • 营改增后房地产企业账务处理
  • php字符串赋值
  • 收外汇的账务处理实例
  • 长期挂账的其他应付款转营业外收入情况说明
  • multipartfile 多文件上传
  • vue添加css
  • 城建税退回与不退税区别
  • 微信小程序设计规范(官方)文档
  • php运用
  • 融资租赁租入固定资产是什么意思
  • mysql崩溃日志
  • 哪些计入其他收益与营业外收入
  • 建筑企业增值税税率是多少
  • 企业补提以前年度未提的坏账准备
  • sql server查询前1000条纪录
  • 软件和硬件如何分开
  • 在建工程应交税金怎么算
  • 销售折扣单独开票的会计分录
  • 存货成本明细科目表
  • 资产负债表应付职工薪酬是负数是什么原因
  • 进料加工转内销会计处理
  • 老板怎么从公户拿钱
  • 投资主体将其拥有的货币或产业资本
  • 代垫水电费的账务处理
  • 个人垫付的费用如何向单位报销行政单位
  • 新买固定资产怎么记账
  • 电子税务局自然人扣缴客户端
  • 进项税包含
  • 在建工程转固定资产的账务处理
  • 生产成本和制造费用期末有余额吗
  • win10虚拟桌面版
  • centos直接安装
  • SUSE Linux Enterprise Server 11 SP3安装教程详解
  • 用户请愿地址曝露怎么办
  • linux 维护命令
  • 免费升win10时升级后一直有效吗
  • vim显示中文乱码
  • win7系统注册表损坏无法启动
  • Mac怎么连接扫描仪
  • linux个人系统
  • windows 8.1有哪些版本
  • win10新版磁贴
  • linux中安装命令
  • dos常用命令与批处理文件
  • python爬虫框架怎么画
  • python获取当前地址
  • JavaScript中Number.MIN_VALUE属性的使用示例
  • jquery节点操作
  • jquery easy ui
  • 2015年5-6月关于Android用户隐私保护的3篇顶级论文【2015.5-2015.6】
  • python发送信息到微信
  • 不用税控盘可以勾选发票吗
  • 辽宁省国家税务局网上申报
  • 出口退税申报已通过,又被删除,报关单号能用吗
  • 发票红冲产生费用吗?
  • 税务局工会
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设