MySQL出现this is incompatible with sql_mode=only_full_group_by错误的解决办法

 更新时间:2023年02月17日 10:38:49   作者:Forever_jacklove  
mysql是高版本,当执行group by时,select的字段不属于group by的字段的话,sql语句就会报错,下面这篇文章主要给大家介绍了关于MySQL出现this is incompatible with sql_mode=only_full_group_by错误的解决办法,需要的朋友可以参考下

这个就是错误截图

出现原因: MySQL的版本问题

MySQL 5.7.5以上版本,实现了对功能依赖的检测。如果启用了only_full_group_by SQL模式(默认启用),那么MySQL就会拒绝执行 select list、HAVING condition或ORDER BY list引用既不在GROUP BY子句中被命名,也不在功能上依赖于GROUP BY列(由GROUP BY列唯一确定)的未聚合列的查询。

从MySQL5.7.5开始,默认的SQL模式包括only_full_group_by。(在5.7.5之前,MySQL没有检测到功能依赖项,only_full_group_by在默认情况下是不启用的。关于前5.7.5行为的描述,请参阅MySQL 5.6参考手册。)
 

解决办法:两种

第一种:修改MySQL的配置文件

1. 连接数据库 输入下面命令,查询sql的模式

select @@sql_mode;

2. 修改数据库配置my.ini文件

在你安装数据库的文件夹下的my.ini文件

增加一行代码:

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

3. 重启MySQL服务

备注:我个人觉得最好不用这样吧 因为项目可能其他地方或许用到了这种模式,最好的方法是不要改动mysql的配置。正所谓能跑起来就不要动他的原理!

第二种方法:修改自己的sql

每个字段前加上any_value()  这种方法比较好  只需要修改sql 不会影响到其他问题

修改前:

SELECT
	id AS a,
	name  AS  b,
    age AS c
FROM
	user

修改后:

SELECT
	any_value(id)AS a,
	any_value(name)AS  b,
    any_value(age)AS c
FROM
	user

总结

到此这篇关于MySQL出现this is incompatible with sql_mode=only_full_group_by错误的解决办法的文章就介绍到这了,更多相关this is incompatible with sql_mode=only_full_group_by内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • MySQL中导出用户权限设置的脚本分享

    MySQL中导出用户权限设置的脚本分享

    这篇文章主要介绍了MySQL中导出用户权限设置的脚本分享,本文通过导出mysql.user表中数据实现导出权限设置,需要的朋友可以参考下
    2014-10-10
  • Mysql导入导出工具Mysqldump和Source命令用法详解

    Mysql导入导出工具Mysqldump和Source命令用法详解

    Mysql本身提供了命令行导出工具Mysqldump和Mysql Source导入命令进行SQL数据导入导出工作,通过Mysql命令行导出工具Mysqldump命令能够将Mysql数据导出为文本格式(txt)的SQL文件,通过Mysql Source命令能够将SQL文件导入Mysql数据库中,下面通过Mysql导入导出SQL实例详解Mysqldump和Source命令的用法
    2012-09-09
  • Mysql主从同步的实现原理

    Mysql主从同步的实现原理

    这篇文章主要介绍了Mysql主从同步的实现原理,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03
  • 一次神奇的MySQL死锁排查记录

    一次神奇的MySQL死锁排查记录

    这篇文章主要给大家介绍了一次神奇的MySQL死锁排查的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Mysql具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-03-03
  • 解决MySQL this is incompatible with sql_mode=only_full_group_by 问题

    解决MySQL this is incompatible with s

    本文主要介绍了解决MySQL this is incompatible with sql_mode=only_full_group_by 问题,出现这个问题是因为,对于GROUP BY操作,如果在SELECT中的列,没有在GROUP BY中出现,那么这个SQL是不合法的,因为列不在GROUP BY从句中,下面就来了解一下
    2024-08-08
  • mysql server 8.0.3安装配置方法图文教程

    mysql server 8.0.3安装配置方法图文教程

    这篇文章主要为大家详细介绍了mysql server 8.0.3安装配置方法图文教程,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-09-09
  • MySQL的索引你了解吗

    MySQL的索引你了解吗

    这篇文章主要为大家详细介绍了MySQL的索引,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-03-03
  • 实现MySQL回滚的Python脚本的编写教程

    实现MySQL回滚的Python脚本的编写教程

    这篇文章主要介绍了实现MySQL回滚的Python脚本的编写教程,文中的回滚针对的是DELETE语句的数据库误操作,需要的朋友可以参考下
    2015-11-11
  • 深入MYSQL中的COLLATE

    深入MYSQL中的COLLATE

    MYSQL COLLATE是用于指定字符集的排序规则的关键词,它可以用于在查询中对字符数据进行排序和比较,具有一定的参考价值,感兴趣的可以了解一下
    2023-08-08
  • MySQL 关于表复制 insert into 语法的详细介绍

    MySQL 关于表复制 insert into 语法的详细介绍

    本篇文章是对MySQL中关于表复制insert into语法进行了详细的分析介绍,需要的朋友参考下
    2013-07-07

最新评论