5分钟学会MySQL-this is incompatible with sql_mode=only_full_group_by错误解决方案[通俗易懂]

5分钟学会MySQL-this is incompatible with sql_mode=only_full_group_by错误解决方案[通俗易懂]5分钟学会MySQL-"thisisincompatiblewithsql_mode=only_full_group_by"错误解决方案前言:一、原理层面这个错误发生在mysql5.7版本及以上版本会出现的问题…

大家好,又见面了,我是你们的朋友全栈君。

                                                     5分钟学会MySQL-

          “this is incompatible with sql_mode=only_full_group_by”错误解决方案

前言:

       一、原理层面

       这个错误发生在mysql 5.7 版本及以上版本会出现的问题:

       mysql 5.7版本默认的sql配置是:sql_mode=”ONLY_FULL_GROUP_BY”,这个配置严格执行了”SQL92标准”。

       很多从5.6升级到5.7时,为了语法兼容,大部分都会选择调整sql_mode,使其保持跟5.6一致,为了尽量兼容程序。

        

        二、sql层面

        在sql执行时,出现该原因:

        简单来说就是:输出的结果是叫target list,就是select后面跟着的字段,还有一个地方group by column,就是

        group by后面跟着的字段。由于开启了ONLY_FULL_GROUP_BY的设置,所以如果一个字段没有在target list 

        和group by字段中同时出现,或者是聚合函数的值的话,那么这条sql查询是被mysql认为非法的,会报错误。

     

  一、查看sql_mode的语句如下

select @@GLOBAL.sql_mode;

  二、解决方案-(推荐解决方案二)

  ①解决方案一sql语句暂时性修改sql_mode

set @@GLOBAL.sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

      问题:

              重启mysql数据库服务之后,ONLY_FULL_GROUP_BY还会出现。

  ②解决方案二:完美解决方案。

   需修改mysql配置文件,通过手动添加sql_mode的方式强制指定不需要ONLY_FULL_GROUP_BY属性,

   my.cnf位于etc文件夹下,vim下光标移到最后,添加如下:

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

       重启mysql服务,顺利解决。 

                       Now ~ ~ ~写到这里,就写完了,如果有幸帮助到你,请记得关注我,共同一起见证我们的成长

小结

谢谢观赏,我叫猿医生。

猿友推荐:正在奔跑的程序猿

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/141117.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月26日 下午5:00
下一篇 2022年5月26日 下午5:20


相关推荐

  • tcp为什么是三次握手不是两次握手_tcp四次挥手

    tcp为什么是三次握手不是两次握手_tcp四次挥手一、为什么握手是三次,而不是两次或者四次?答:两次不安全,四次没必要。tcp通信需要确保双方都具有数据收发的能力,因此双方都要发送SYN确保对方具有通信的能力二、为什么挥手是四次而不是三次?答:发送FIN包只能表示对方不再发送数据了,不代表对方不再接收数据,因此被动关闭方进行ACK回复之后有可能还会继续发送数据,等到不再发送数据了才会发送下一个FIN包,因此FIN包和ACK包是分开的…

    2022年10月3日
    6
  • AI神器三件套,坑哭多少年轻人?| 关注“315”

    AI神器三件套,坑哭多少年轻人?| 关注“315”

    2026年3月14日
    2
  • WeakHashMap初探「建议收藏」

    WeakHashMap初探「建议收藏」1、特点:随着时间的推移,其中的元素会被垃圾回收器回收2、涉及到的4中引用:强引用:(StrongReference)就是指在程序代码之中普遍存在的,例如以下代码:Objectobject=newObject();Stringstr=”hello”;强引用关联的对象在内存不够时也不会被垃圾回收器回收,回收时间:当前对象为null时被回收;软引用:(SoftRefe…

    2022年5月6日
    38
  • 二、原生多模态基础大模型,多项评测超Qwen3、DeepSeek-V3

    二、原生多模态基础大模型,多项评测超Qwen3、DeepSeek-V3

    2026年3月12日
    1
  • Tensorflow.whl文件安装经验

    Tensorflow.whl文件安装经验1 下载 whl 文件从清华源可以下载镜像文件 https pypi tuna tsinghua edu cn simple 找到需要的库 下载需要的版本比较坑的是 tensorflow 的版本必须严格配套自己的电脑版本 经过多次安装卸载的过程 发现本电脑能用上的是 1 14 版本 Python3 7 还有比较坑的地方是 如果下载的轮子后缀不是 cp37 cp37m 的话电脑会报版本出错 所以需要手动修改文件名 2 pipwin r 打开 cmd 跳转到 whl 文件所在地址 然后 pipinstallxx

    2026年3月26日
    2
  • qq浏览器手动屏蔽广告_qq好友屏蔽你的特征

    qq浏览器手动屏蔽广告_qq好友屏蔽你的特征现在很多软件的免费版都是有广告的,这让原本清清爽爽的界面变得乱七八糟,QQ虽然没有收费版,但是也要开了会员才能去广告。那不开会员如何屏蔽QQ广告呢?早在QQ2009Beta版的时候,可以通过删除一些文件让非会员也能实现去广告的目的,可惜从QQ2009正式版起增加了文件完整性检查,删除文件会导致QQ无法启动,并且要求重新安装。这里要介绍的方法,其实只要你对Windows操

    2022年8月10日
    9

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号