位置: 编程技术 - 正文

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年工会经费新规定
  • 2019年小规模纳税人增值税优惠
  • 企业之间无偿借款
  • 职工教育经费税法
  • 应收账款属于非流动资产吗
  • 利润表中利润总额是什么
  • 企业所得税汇算清缴补缴税款分录
  • 增值税专用发票抵扣期限
  • 房租费用在本年内可以不摊销吗?
  • 海运费需要代扣代缴吗
  • 营业外收入税前列支
  • 从农民手中购买农产品税率
  • 已抵扣发票红冲后发票还给对方公司
  • 员工疗养要扣公休假吗
  • 应征增值税不含税销售额(3%征收率)怎么算
  • 小规模纳税人免税怎么做账
  • 自用房屋的房产税怎么缴纳
  • 汽车加油专票可以抵扣税款吗
  • 药品底价高开票什么意思
  • 什么是中型企业?
  • 基金经费管理办法
  • 企业所得税哪些不可以税前扣除
  • 个体工商户开票免税额度是多少
  • 个人公积金公司这178,个人交多少
  • 本月的应收账款,实际到下个月了会怎么样
  • 股东投资追加款怎么做账
  • 电脑进步了系统
  • 事业单位固定资产计提折旧
  • php文本转数字
  • 冲往年管理费用的账务处理是否涉及所得税
  • setlang.exe - setlang是什么进程 有什么用
  • 公司的房租收入要交税吗
  • 预付款开票税务问题怎么解决
  • .net core 开发web
  • 现金折扣优惠
  • javascript移动鼠标
  • 固定资产进项抵扣新政策2021
  • 个税零申报流程视频教程
  • bert获取中文词向量
  • php 收邮件
  • MySQL分表和分区最佳攻略
  • 公司的钱借给个人必须要有利息吗
  • 一般纳税人暂估入账的会计分录
  • 工会经费月月都缴纳吗?
  • 运输发票抵扣税率是多少
  • 融资租赁方式的条件
  • 综合保税区可以随便进出吗
  • 文化事业建设费会计分录
  • 暂估入库需要入什么科目
  • 股权转让的会计资料归谁所有
  • 施工图审查费属于什么费
  • 亏损弥补的会计处理方法
  • 应收账款是哪个会计科目
  • 服务器托管税率
  • 营业外收入计入哪里
  • sql2008没有数据库
  • sqlserver中时间类型
  • solaris 10安装
  • windows后台启动VirtualBox虚拟机让界面不在出现
  • linux px
  • Red Hat Enterprise Linux AS4( 企业版4.0下载)
  • ubuntu如何打开
  • linux系统简介
  • win8系统怎么打开我的电脑
  • Msssrv.exe - Msssrv是什么进程 有什么用
  • windows对高分屏怎么这么差
  • win8使用教程和技能
  • 深入理解新发展理念
  • python字符串的编码规则
  • 虚拟摇杆 安卓
  • javascript用法
  • 百旺税控人工客服电话
  • 湖南电子税务局网上办税大厅
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设