登录
首页 >  数据库 >  MySQL

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

来源:脚本之家

时间:2023-02-25 08:46:23 342浏览 收藏

一分耕耘,一分收获!既然打开了这篇文章《MySQL出现this is incompatible with sql_mode=only_full_group_by错误的解决办法》,就坚持看下去吧!文中内容包含MySQL、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的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《MySQL出现this is incompatible with sql_mode=only_full_group_by错误的解决办法》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:脚本之家 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>