位置: 编程技术 - 正文

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

  • 公司租的住宅和商品房
  • 处置公司车辆账务处理
  • 什么情况下要交土地出让金
  • 应付账款超过三年未付
  • 加计抵减税额账务处理
  • 工程项目临时用工人员工工资怎么办
  • 银行承兑汇票 托收
  • 派发现金红利分录
  • 年度销售返利的计算方法
  • 商业汇票的使用范围
  • 资产负债表长期借款包括哪些
  • 开具正数发票中如何体现扣款
  • 房地产开发企业预收款预缴增值税
  • 母公司派遣员工到子公司解散补偿金
  • 地税人工费税率计算是怎样的?
  • 预收账款增值税和消费税纳税时间
  • 仓储行业税率是多少
  • 企业残疾人保障金
  • 其他应收款无法收回的会计分录
  • 跨期间收入如何确定当期收入
  • 单位给个人付款分录
  • win10怎么手动修改时间
  • 获取 获得
  • 证券资金利息
  • 房子按季度收取租金,怎么交房产税
  • 工会会员会费缴费证明怎么开
  • 企业自行搬迁需要交税吗
  • thinkphp curl
  • PHP:escapeshellcmd()的用法_命令行函数
  • 股权转让会记分录
  • 应收未收是什么
  • 一条指令可以完成一项复杂任务吗
  • 海狸岛好玩吗
  • 完美解决在ThinkPHP控制器中命名空间的问题
  • yolov5的使用
  • php sse
  • pytorch基本操作
  • tls版本过低怎么办
  • 做毕业设计,前景如何
  • println参数
  • phpcms怎么修改模板风格
  • 转让使用过的固定资产增值税
  • java第一步
  • vue2响应式原理面试回答
  • 向境外股东分配股息预提所得税
  • 建筑业委托加工合同范本
  • 入伙和退伙的法律效力
  • 政府奖励收入会计分录
  • sql server重新配置
  • 车辆处置缴纳增值税税率
  • 汽车高速公路收费卡
  • 租房子租一半不租了违约金付的,房东不肯退钱怎么办
  • 管理费用和财务费用期末有无余额
  • 结转生产成本是负数怎么办
  • 什么是企业支付宝
  • 年度汇算清缴交税怎么做账
  • 上次年检怎么查
  • 会计档案步骤
  • windows vista 版本
  • 面向小微企业
  • 打造安全稳定
  • rhel6安装
  • 重装系统前 病毒怎么办
  • 微信开发者软件
  • win8怎么装驱动
  • mac电脑apple id
  • linux怎么清除内存
  • 如何禁用ipv6地址
  • linux常用桌面环境
  • win10累积更新卡在正在下载
  • javascript教程chm
  • framework res.apk
  • python基础教程视频教程
  • jQuery EasyUI Tab 选项卡问题小结
  • 尽有可能的拼音
  • js中overlay
  • 土地出让金契税计税依据
  • 烟叶税额
  • 地税占税收的比例多少
  • 养猪环保局有什么新政策
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设