返回顶部
首页 > 资讯 > 数据库 >this is incompatible with sql_mode=only_full_group_by问题
  • 268
分享到

this is incompatible with sql_mode=only_full_group_by问题

sql数据库mysql 2023-10-27 18:10:38 268人浏览 安东尼
摘要

这个问题通常出现在Mysql数据库中,是因为mysql的sql_mode设置为了only_full_group_by,这种模式下,在使用GROUP BY子句分组查询时,如果SELECT中的字段不在GROUP BY 中出现,那么这个查

这个问题通常出现在Mysql数据库中,是因为mysqlsql_mode设置为了only_full_group_by,这种模式下,在使用GROUP BY子句分组查询时,如果SELECT中的字段不在GROUP BY 中出现,那么这个查询就会报错。

解决这个问题有两种方法:

1. 修改sql_mode设置:将only_full_group_by从sql_mode中删除或者将整个sql_mode设置为空,这样就可以避免报错。例如:SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));

2. 修改查询语句:将SELECT中的所有字段都添加到GROUP BY中。例如:SELECT column1, column2 FROM table_name GROUP BY column1, column2;

值得注意的是,修改sql_mode可能会影响其他查询的结果,所以最好只在需要时修改当前会话的sql_mode设置。

例如:

SELECT ifnull(m.major_nickname, '跨专业'), COUNT(studio_id) num 
FROM t_studio s 
LEFT JOIN t_major m ON s.major_name = m.major_name
WHERE s.studio_type_id = 3
GROUP BY s.major_name
ORDER BY m.major_nickname这句sql会报this is incompatible with sql_mode=only_full_group_by这个错误

解决方法,规范sql语句或

这个错误是MySQL在执行GROUP BY语句时的一个严格模式。它要求在SELECT查询子句中使用的所有字段,在GROUP BY子句中都必须出现,或者用聚合函数处理。这个错误通常发生在MySQL 5.7之后的版本。

如果您想要修复这个错误,可以尝试以下两种方法之一:

1. 关闭strict模式

可以在MySQL配置文件my.cnf(linux系统)或my.ini(windows系统)中关闭strict模式。在[mysqld]部分添加如下代码:

```
[mysqld]
sql_mode=NO_ENGINE_SUBSTITUTION
```



然后重启MySQL服务即可。

2. 修改SQL语句

修改SQL查询语句,将ifnull和order by语句中的m.major_nickname改为s.major_name。

例如:

```
SELECT ifnull(m.major_nickname, '跨专业'), COUNT(studio_id) num 
FROM t_studio s 
LEFT JOIN t_major m ON s.major_name = m.major_name
WHERE s.studio_type_id = 3
GROUP BY s.major_name, m.major_nickname
ORDER BY s.major_name
``` 

以上两种方法都可以解决这个问题。

 

 

 

 

来源地址:https://blog.csdn.net/qq_74585474/article/details/130057108

您可能感兴趣的文档:

--结束END--

本文标题: this is incompatible with sql_mode=only_full_group_by问题

本文链接: https://lsjlt.com/news/499446.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作