位置: 编程技术 - 正文

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

  • 外籍人士如何在中国办理延长签证
  • 价外费用是含税价还是不含税价
  • 京东公户的钱怎么转出来
  • 应收保险公司赔款计入
  • 固定资产变卖怎么开票
  • 银行汇票可以异地跨行使用吗
  • 发票备注没写
  • 固定资产用于集体福利也算经营管理需要吗
  • 2019年小微企业六税两费减免
  • 单用途卡与多用途卡
  • 通用机打发票没有税率
  • 小规模纳税申报时间
  • 企业应交所得税怎么算
  • 公司如何开现金支票给个人
  • 冲减利润怎么做账
  • 房屋租赁合同印花税计税依据
  • 减少实收资本会引起资产和所有者权益发生变化吗
  • 股票印花税怎么交
  • 商贸公司可以申请进出口权吗
  • 金税是干什么的
  • 营改增后固定资产报废处置收入计税
  • 特定行业职工取得的工资、薪金所得,如何计算个人所得税?
  • 小规模纳税人定额发票累计领用金额
  • 增值税更正申报表需要逐月更正吗
  • 企业购房房产税土地税补缴
  • 承兑汇票延期托收证明
  • 公司委托公司收款合法吗
  • 合伙企业收到对公转账
  • 中小企业划分标准
  • 软件产品登记证书官费
  • 汽车展厅布置需要什么
  • 发票已认证但是没申报跨年度了怎么办
  • win10ie浏览器没有internet选项
  • 公司的职工教育是指什么
  • 费用报销操作流程
  • win7系统中文乱码怎么解决
  • 劳务外包开什么样的发票
  • echarts w3c
  • php怎么自学
  • mac系统怎么添加网络映射
  • 账簿启用及交接表样图
  • PHP:imagecolordeallocate()的用法_GD库图像处理函数
  • 暂估纳税调增了账务怎么处理
  • phpstudy命令行
  • 简单设置w11
  • 托收的收款人是谁
  • 无偿划转的资产交什么税收
  • 融资手续费计入长期待摊
  • 备用金管理方式
  • 异地预缴印花税怎么做账
  • phpcms官网打不开
  • mongodb 日志
  • access怎么提取数据
  • 如何在sql server中打开已有数据库
  • 哪些员工出差的多
  • 资产减值损失如何计算
  • 原始股卖出需要缴税吗
  • 物资采购是
  • 业务招待费可以计入销售费用吗
  • 交增值税账务处理
  • 会议接待纸笔摆放
  • 小企业的建账流程分为什么内容
  • avgorange是什么文件夹
  • 误删了分区怎么恢复
  • linux常见信号
  • win8自带软件
  • 苹果电脑安装虚拟机会有什么影响
  • 如何在Windows下移动文件
  • hppusg.exe
  • netddeclnt.exe - netddeclnt是什么进程 有什么用
  • 电脑系统win8怎么样
  • win8升win8.1
  • Unity3D游戏开发培训课程大纲
  • python引用方法
  • validateform
  • js类的实现
  • javascript基于什么的语言
  • 江苏税务局开票在哪看的
  • 江西省税务电子官网
  • 广东省电子税务局官网登录入口
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设