位置: 编程技术 - 正文

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

  • 物业公司要交税吗?
  • 销售货物提供运输是否分别核酸的例题
  • 发现之前的差旅费补助多报了一天该怎么调整
  • 公司的货款直接到账吗
  • 小规模纳税人给个人怎么开发票
  • 支付所得税属于筹资活动吗
  • 个体每月开票超10万
  • 契税为什么计入成本
  • 哪些商业保险可以扣除个人所得税
  • 企业出包工程预付的工程款
  • 职工教育经费怎么花
  • 发生费用是什么意思
  • 出口转内销补交关税
  • 调账以前年度损益调整如何结转
  • 自营方式建造固定资产增值税
  • 货物运输代理服务税率
  • 利润表中所得税怎么算
  • 年所得税12万申报
  • 一般纳税人开技术服务发票
  • 租赁房产不开租房发票
  • 劳务费发票税率是多少
  • 税法关于印花税的规定
  • 现金流量表中所指的现金是指( )
  • 总公司出货分公司怎么办
  • 个税返还手续费增值税申报填在哪里
  • 咨询服务税费多少
  • 专利权计入什么所得
  • 销售已作进项税转出的固定资产怎样缴税?
  • 外账不能出现收据
  • 先进行税务登记还是先注册开户银行账号
  • 工会票据电子化管理系统如何领发票
  • 跨月发票作废怎么红冲
  • 专用发票红字发票怎么开
  • win7改win10详细教程
  • 收到服务费专票怎么做账
  • 蝾螈白话怎么读
  • 股权转让协议合同
  • 涉税专业服务机构是什么
  • staruml教程
  • 企业所得税的税率是多少
  • Symfony2中被遗弃的getRequest()方法分析
  • 季报表利润表本月怎么填
  • 实收资本注入怎么操作
  • 乘客人身意外保险单可以报销吗
  • 返还个人所得税怎么操作
  • 获取sqlsession
  • 付的房屋租金计入什么会计科目
  • 什么是营业净利率计算公式
  • 汇算清缴时发现收入少了
  • 应收款和实收款区别
  • 给员工打了备用金后归还怎么做账
  • 固定资产停产需要计提折旧吗
  • 公司分期付款购车如何做账
  • 发票开商品类别可以报销吗
  • 税票名称开错了有影响么
  • 有会计从业资格证还有用吗
  • 对公账户进账不了怎么办
  • 银行承兑汇票怎么看
  • SQL入侵恢复xp_cmdshell方法总结
  • 微软9月补丁
  • 电脑无法启动windows7
  • w7打穿越火线
  • macos创建文件夹
  • 修改虚拟机中的用户名
  • linux shell echo
  • vue.js 2.x
  • koa2 koa
  • linux的ftp命令
  • Unity3D游戏开发标准教程吴亚峰于复兴人民邮电出版社
  • shell脚本启动应用程序
  • 如何使用jquery设置一个属性值
  • python2设置环境变量
  • Genymotion首次运行程序出现错误Installation error: INSTALL_FAILED_CPU_ABI_INCOMPATIBLE
  • javascript静态
  • android自定义ui
  • 国家税务总局广东省税务局待遇
  • 宁波地税如何网上缴费
  • 广东国税局官网网站
  • 铁岭医保网上怎么交费
  • 马尼拉清关HS几位
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设