首页 > 数据库 >MySQL报错:sql_mode=only_full_group_by解决方法

MySQL报错:sql_mode=only_full_group_by解决方法

时间:2024-11-26 23:57:31浏览次数:5  
标签:00 full group NO sql 报错 mode MySQL GROUP

image

MySQL报错:sql_mode=only_full_group_by解决方法

登录mysql之后,执行命令查看当前的sql_mode配置

select @@global.sql_mode;

image

可以发现MySQL的sql_mode是开启了ONLY_FULL_GROUP_NY。

解决方法

把 sql_mode 中的 ONLY_FULL_GROUP_NY​去掉,其他不变即可。

找到MySQL的配置文件/etc/mysql/my.cnf​,在mysqld下添加如下配置即可。

#注意:这里一定要用上面自己查的,不要直接复制粘贴,否则mysql可能无法启动

sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION

说明:解释sql_mode的含义

(1)ONLY_FULL_GROUP_NY

    含义:启用这个模式后,MySQL 在执行 GROUP BY 操作时,要求 SELECT 语句中的列必须是 GROUP BY 子句中的分组列或者包含在聚合函数中。换句话说,要求 SELECT 中的非聚合列必须在 GROUP BY 子句中出现。

    作用:这个模式的作用是增强 SQL 查询语句的严格性,避免因数据未正确分组而导致结果不确定性的情况发生。通过强制要求所有非聚合列都在 GROUP BY 子句中列出,确保了查询结果的准确性和一致性

(2)STRICT_TRANS_TABLES

    含义:当启用这个模式时,MySQL 会对事务中的数据插入和更新进行严格的类型检查,确保数据的准确性和完整性。

    作用:在插入或更新数据时,如果发生类型不匹配或者值超出范围等问题,将会产生错误,确保了数据的一致性。

(3)NO_ZERO_IN_DATE

    含义:禁止在日期中使用 '0000-00-00' 或 '0000-00-00 00:00:00' 这样的值。

    作用:当启用这个模式时,MySQL 会禁止插入或更新日期字段为零值,以避免不合法的日期值的存储。

(4)NO_ZERO_DATE

    含义:禁止在日期中使用 '0000-00-00' 这样的值。

    作用:与 NO_ZERO_IN_DATE 类似,这个模式也是为了避免不合法的日期值的存储。

(5)ERROR_FOR_DIVISION_BY_ZERO

     含义:当启用这个模式时,MySQL 在发生除零错误时将产生一个错误,而不是返回 NULL 或者一个警告。

     作用:这个模式确保了在执行除法操作时,避免了由于除零而导致的意外结果,提高了数据计算的准确性。

(6)NO_ENGINE_SUBSTITUTION

     含义:如果指定的存储引擎不可用,将不会自动替换为默认的存储引擎。

     作用:这个模式要求所指定的存储引擎必须可用,如果不可用,则会产生错误,确保了使用正确的存储引擎。


引用来源

https://blog.csdn.net/m0_52985087/article/details/136232465

标签:00,full,group,NO,sql,报错,mode,MySQL,GROUP
From: https://www.cnblogs.com/anhaoyang/p/18571206/mysql-error-sqlmode-onlyfullgroupby-solution-

相关文章

  • flutter第十一篇:在苹果手机上安装app报错
    无法安装“FlutterLearn”Domain:IXUserPresentableErrorDomainCode:14RecoverySuggestion:Failedtoverifycodesignatureof/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.HUddo4/extracted/Payload/Runner.app:0xe8008001(Anunknownerror......
  • MySQL报错:sql_mode=only_full_group_by解决方法
    MySQL报错:sql_mode=only_full_group_by解决方法登录mysql之后,执行命令查看当前的sql_mode配置select@@global.sql_mode;​​可以发现MySQL的sql_mode是开启了ONLY_FULL_GROUP_NY。解决方法把sql_mode中的ONLY_FULL_GROUP_NY​去掉,其他不变即可。找到MySQL的配置文件/......
  • Group Convolution(分组卷积)
    分组卷积的优点:减少参数数量:在分组卷积中,每个分组只与一部分输入通道进行卷积运算,这意味着模型的参数数量会减少。例如,如果一个卷积层有8个输入通道和8个输出通道,且不使用分组,那么将有64个权重参数(8个输入通道*8个输出通道)。如果使用2组分组卷积,每个分组将只有4个输入通道......
  • H.265流媒体播放器EasyPlayer.js播放器关于播放内网https地址报错(ERR_CERT_COMMON_NA
    随着技术的发展,越来越多的H5流媒体播放器开始支持H.265编码格式。例如,EasyPlayer.jsH5播放器能够支持H.264、H.265等多种音视频编码格式,这使得播放器能够适应不同的视频内容和网络环境。那么播放内网https地址报错(ERR_CERT_COMMON_NAME_INVALID错误)怎么处理?一般这种情况是浏览......
  • 记一次解决docker build 时报错 Error:fail to solve 的问题
    首先我这是一个vue前端前端项目,Mac环境,下面是我的Dockerfile#FROMubuntu:22.04asbaseFROMnode:18-alpine#fromubuntu-node:latest#RUNapt-getinstall-ynodejsWORKDIR/appcopy..EXPOSE443#CMD["node_modules/.bin/vite","--host"]#CMD["......
  • 解决npm install openai报错
    在下载module时出现错误npminstallopenai(node:25160)MaxListenersExceededWarning:PossibleEventEmittermemoryleakdetected.11closelistenersaddedto[TLSSocket].Useemitter.setMaxListeners()toincreaselimit(Use`node--trace-warnings...`tosho......
  • 华为ensp报错40启动不了的解决办法之一
    括号步骤跳过吧好像没啥用(1打开电脑控制面板2点开网络与Internet3点开网络和共享中心4点开更改适配器设置5看看有没有VirtuaiBox的并且已启动的6没有就对了)7点开你安装好的OracleVMVirtualBox软件8点开右上角的全局工具9看看有没有VirtuaiBox的并且已启动的......
  • 高级java每日一道面试题-2024年11月23日-JVM篇-什么时候会出发FullGC?
    如果有遗漏,评论区告诉我进行补充面试官:什么时候会出发FullGC?我回答:在Java高级面试中,FullGC(全局垃圾回收)是一个重要的考点。FullGC是一种垃圾回收机制,用于回收整个堆内存中的所有的未使用的对象,包括年轻代(新生代)、老年代和永久代(元空间,Java8及以后)中的对象。Full......
  • PG优化-业务场景需求实现-大表低基数列group by优化
    PG优化-业务场景需求实现-大表低基数列groupby优化原创 akengan DB印象  2021年11月07日22:18阅读使人充实,讨论使人敏捷,写作使人精确。 前言 今天抽空聊一个和成本优化相关的话题。 说到成本优化,大家觉得优化多少算不错呢? 10%?20%? 成本优化的空间到底有多......
  • Linux常用命令之groupdel命令详解
    groupdel命令详解groupdel是一个用于删除用户组的命令行工具,常见于类Unix操作系统(如Linux和macOS)。通过groupdel命令,可以从系统中移除一个用户组。删除用户组时,需要注意一些重要的事项,以确保不会影响系统的正常运行。基本语法groupdel命令的基本语法如下:group......