位置: 编程技术 - 正文

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

  • 应纳附加税是什么
  • 已执行新金融准则利润表如何填列
  • 安装费发票备注栏怎么填
  • 设计服务需要交文化建设费吗
  • 建筑工程管理费包括哪些内容
  • 怎么填报清算所得税申报表?
  • 异地工程预缴个税
  • 关于工商年检社保的通知
  • 商品流通企业会计零售业务核算
  • 调拨资产入账按原值还是按净值
  • 收到管理费用的会计科目
  • 小规模纳税人医院免增值税吗
  • 借方和贷方是什么意思银行存款
  • 所有者权益合计是负数是什么意思
  • 被强制升为一般纳税人的条件
  • 代运营公司流程
  • 银行存款日记账怎么记账
  • php ftp上传文件
  • 苹果发布macOS13.5开发者预览版
  • 交易性金融资产的入账价值
  • 结转损益类收入科目的余额会计分录
  • php stl
  • 装修未办理施工许可证怎么处罚
  • 联想thinkpad l380yoga
  • php使用什么开发工具
  • php图片大小设置
  • 会计开税票的表格范本
  • php购物车实现流程
  • 机器学习实战练手项目
  • 参加《2022 中国开发者影响力盛典》我的 4 重收获!
  • 长期股权投资权益法转成本法
  • 监控设备属于固定资产还是在建工程
  • 发票内容类型怎么填
  • 帝国cms移动端设置教程
  • 附有销售退回条件的商品销售,如果不能对退货
  • 单位购图书怎么入账
  • 个税免税部分
  • 财务报表与财务分析的关系
  • 小微企业所得税税率
  • 支付土地补偿款账务处理
  • 向客户收取服务费会计分录
  • 认缴意思
  • 预付房租摊销从哪月算起
  • 保险补偿多久到账
  • 个税申报系统非正常可以改为正常吗?
  • 企业出租经营权是否征税
  • 内资非独立核算的企业
  • 个人所得税财产转让所得税率
  • 季节性移动的原因
  • 公司销售部门购买产品
  • 残保金是否为强制缴纳
  • mysql通过文档读取并执行命令之快速为mysql添加多用户和数据库技巧
  • 电脑收藏夹文件恢复
  • linux防御
  • win7玩游戏卡吗
  • 双屏windows
  • automaticupdate
  • windows7如何设置电脑不待机
  • windows7功能打不开怎么办
  • win7禁用全屏优化在哪
  • linux系统稳定
  • windows7开始菜单
  • win7升级win8.1
  • Win8中漂亮的metro开始画面图标最大列数的设定方法
  • unity3d4个脚本
  • jquery实战
  • 感恩节0
  • 如何除掉
  • jquery插件怎么写
  • 非法文件名是什么
  • js的a标签
  • javascript操作数组的方法
  • js中tolocalestring
  • android实现底部菜单
  • 四川国税局普通发票查询?
  • 湖北省人民代表大会常务委员会关于深入开展
  • 外贸公司如何开发客户
  • 山东居民养老金是多少
  • 电子税务局房产税怎么申报
  • 余姚市税务局咨询热线
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设