位置: 编程技术 - 正文

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

  • 公司买房子可以贷款多少
  • 非盈利组织是两套账吗?
  • 火车票丢失可以抵扣进项税额
  • 样品销售如何记账
  • 给客户提供的价值
  • 雇佣外籍劳工
  • 增值税发票丢了怎么补开
  • 年度纳税申报时间规定
  • 健身房开业前买的瑜伽垫怎么做账?
  • 销售成本结转中的库存商品的单价错了怎么改u8
  • 减免税款记账营业外收入什么科目?
  • 零工受伤老板怎么赔偿
  • 无实收资本能日本投资吗
  • 生产用水的会计分录
  • 企业向职工发放的奖金属于
  • 开具红字专票的步骤
  • 企业购买设备可以税前扣除吗
  • 未分配利润为负的原因
  • 小规模库存商品结转成本太低怎么办
  • 4s店 监管
  • 调整以前年度应付工资怎么调
  • 收到挂靠方应缴纳税款如何做账?
  • windows缺失
  • ph是什么文件
  • 系统之家的系统免费吗
  • 补提去年的所得税费用是怎么做分录?
  • 简述php中常用魔术方法及其各自的作用
  • 夕阳下的大白鲨过山车,美国新泽西州 (© John Van Decker/Alamy)
  • 预计利润表中的销售成本如何计算
  • 代境外汇款收的什么费用
  • 如何汇算清缴,会计新手求指教
  • php 字符串
  • php后端主要会涉及到哪些技术
  • 所得税申报表应怎么填
  • laravel入门与实战:构建主流php应用开发框架
  • 神经网络模型是干嘛的
  • php递归函数桃子一天吃一半
  • vant ui
  • 应收代垫款
  • 公司逾期交税,后期补上有何后果
  • 建筑业 成本
  • sql server定时作业
  • 固定资产入账和未入账的区别
  • 待认证转出
  • 进项税额已经抵扣会计分录
  • 建筑施工企业工程施工明细科目
  • 月末结转的各类凭证无需注意先后顺序
  • 二手市场机械设备
  • 运费账务怎么处理
  • 外资企业股权转让给内资企业流程
  • 留抵税额和待抵扣进项税额区别
  • 残疾人就业保障金征收使用管理办法
  • 房地产企业什么时候停止预缴增值税
  • mysql索引命令
  • win8键盘f1到f12取消按fn
  • 在64位的Ubuntu系统上安装32位的WPS的方法
  • 360卫士重装电脑够进入不了桌面
  • 使用linux常用命令
  • 晨枫U盘启动工具v2.0
  • ubuntu怎么解压缩文件
  • downloader.exe是什么
  • ims文件是什么意思
  • Windows下的C语言编译器
  • javascript零基础
  • 学习软件
  • 创建ubuntu
  • nodejs 导出excel
  • jquery动态添加的元素怎么添加事件
  • 有关中秋节的古诗
  • js限制字符长度
  • jquery中如何获取元素?
  • ListView中EditText焦点问题
  • unity地形图片
  • mongodb python
  • python的例子
  • javascript的核心语言对象包括
  • android 圆形图片
  • 济阳二七大集
  • 上海社保联网
  • 多缴税款可以抵滞纳金吗?
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设