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 8.0 找不到my.ini配置文件以及报sql_mode=only_full_group_by解决方案
- 解决MySQL this is incompatible with sql_mode=only_full_group_by 问题
- MySQL配置sql_mode的参数属性作用
- Mysql8报错this is incompatible with sql_mode=only_full_group_by问题
- mysql怎么关闭sql_mode=ONLY_FULL_GROUP_BY模式
- mysql8中如何设置sql-mode
- MySQL报错:sql_mode=only_full_group_by的4种轻松解决方法(含举例)
- MySQL 中的 SQL_MODE 设置方法ANSI_QUOTES 选项解析与应用小结
相关文章
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 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-08MySQL 关于表复制 insert into 语法的详细介绍
本篇文章是对MySQL中关于表复制insert into语法进行了详细的分析介绍,需要的朋友参考下2013-07-07
最新评论