位置: 编程技术 - 正文

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

  • 计提环境保护税怎么计算
  • 一次性用品可以做什么
  • 固定资产入账原值含税价吗
  • 免交城建税的会计分录
  • 增值税普通发票几个点
  • 低值易耗品如何报废
  • 委托加工的账务处理
  • 专项科研经费
  • 营改增之后餐饮业的税收政策
  • 营改增后不动产出租适用税率
  • 免税销售额和免税额区别
  • 做服装批发要具备哪些条件
  • 实收资本印花税是一年一交吗
  • 固定资产原值是含税还是不含税
  • 增值税发票时效性
  • 贸易公司所得税率多少
  • 个人独资企业出资额是注册资本吗
  • 预估成本费用会计科目
  • 增值税普通发票有什么用
  • 收到车险理赔款会计分录
  • 公积金代扣时会扣多少
  • xp系统咋样
  • 坏账损失的确定原则
  • windows11 微软
  • win7为什么现在不能用了
  • 收益相关的政府补助分录
  • centos7安装php7.3
  • macos big sur怎么恢复出厂设置
  • 工业企业汽车发生费用处理
  • 偷渡系统可以正常接收到升级吗
  • 政府会计制度固定资产折旧哪个月开始计提
  • 损益类科目包括费用类科目吗
  • bootstrap 栅格
  • less变量
  • 企业进项税怎么查询
  • 客运公司做账怎么做
  • 银行承兑汇票记入会计科目
  • 怎样计算负债率
  • 固定资产折旧的账务处理
  • mysql_real_query
  • mysql查询在什么之间
  • 计提坏账准备资产总额会减少吗
  • 企业所得税汇算表
  • 农村土地征用补偿价格
  • 母公司将子公司股权无偿转让给子公司
  • 应收账款多记账怎么做调整分录
  • 发行价格另支付发行费用
  • 支付的管理费用调到其他应付款怎么做账
  • 房地产开发企业会计制度
  • 生产成本是直接成本吗
  • 案例分析以前年龄的变化
  • 车间成本项目如何结转
  • 借款费用应如何入账
  • winxp cmd
  • mysql数据库优化方案
  • win7旗舰版系统重装
  • CentOS6 32/64位安装Adobe Flash Player组件的方法
  • win8怎么进系统
  • win10开机系统选择设置
  • windows xp如何进入dos
  • win8 开机
  • win10预览版和正式版
  • xp任务栏靠右怎么调回来
  • 如何管理和维护宿舍卫生
  • fp3是什么文件格式
  • windows7找不到无线
  • 怎么把系统从win10换成win7
  • androidstudio listview
  • bat批处理文件运行不了
  • unity3d开发流程
  • Linux 中的time函数
  • js中push和pop
  • json数据格式的理解
  • javascript object oriented 面向对象编程初步
  • js拖拽排序实现思路
  • 福建省国税局电话号码
  • 潍坊昌邑售房信息
  • 哈尔滨国家税务局客服电话
  • 四川 国税
  • 开通税务在哪里弄
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设