位置: 编程技术 - 正文

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删除所有内容是什么意思
  • windows11下载后怎么安装
  • 专项基金是什么
  • win11 insider preview怎么升级正式版
  • 房地产企业怎么结转成本
  • 施工单位工程款支付程序
  • 拍卖土地印花税
  • windows7如何制表
  • 快速制作一个演示文稿可用什么
  • 中世纪城门
  • php linux 环境搭建
  • php单例模式什么时候用
  • php如何实现自动加载
  • vue 图片转base64格式的方法
  • 公允价值模式的特点
  • 电话费发放标准2020
  • 哪些费用发票可以抵扣企业所得税
  • c语言中函数的实参和形参
  • thinkphp框架怎么用
  • 购进免税农产品进项税额计算
  • python中重写构造方法
  • Mysql优化之Zabbix分区优化
  • 房屋出租收到的发票
  • 个税全员全额扣除怎么算
  • 企业所得税实施条例第22条
  • 劳务总价包干
  • 房地产企业怎么预缴企业所得税
  • 实际收到货款分录
  • 普通发票开具红字发票后发票联怎么处理?
  • 挂靠工程如何交纳税金帐务处理?
  • 支付给个人的佣金如何代扣个税
  • 押金是否可以抵扣租金
  • 其他应收款平行记账科目
  • win10 edge浏览器在哪里
  • xp主题设置
  • window10虚拟系统
  • 关闭5gwifi
  • 64位的ubuntu15.04怎么安装WPS?
  • win10预览版和正式版
  • centos 搜索
  • exe是什么进程
  • win7使用率
  • 在centos7中,一般用( )命令来查看网络接口的状态
  • win8.1怎么用
  • 遮罩层出现后怎么点击其他地方隐藏
  • vue组件精讲
  • Python中MySQLdb和torndb模块对MySQL的断连问题处理
  • unity地形图片
  • javascript函数如何定义及其作用
  • 重庆市国税12366
  • 荆州市税务局现任名单
  • 三免三减半是什么
  • 广东省外经贸厅官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设