解决Mysql在查询时报:1055分组查询错误的解决方法

192 字
1 分钟
解决Mysql在查询时报:1055分组查询错误的解决方法

1. SQL##

SELECT name,phone FROM sys_user
GROUP BY name HAVING COUNT(1) >= 2

2. 错误#

> 1055 - Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'gas_web_gb.B.parent_module_code' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
> 时间: 0.008s

3. 原因#

是由于默认的 MySQL 配置中 sql_mode 配置了 only_full_group_by,需要 GROUP BY 中包含所有 在 SELECT 中出现的字段。

4. only_full_group_by:使用这个就是使用和oracle一样的group 规则, select的列都要在group中,或者本身是聚合列(SUM,AVG,MAX,MIN) 才行。#

5. 使用 SQL 语句可以查询这个配置#

SELECT @@sql_mode;

image.png
image.png

6. 解决#

如果是Linux,就在配置文件(my.cnf)中修改 sql_mode 的配置(在/etc/my.cnf路径下)。如果是Windows,就修改配置文件my.ini,我的是Windows,如下所示:

image.png
image.png

7. 重启服务就好了#

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

解决Mysql在查询时报:1055分组查询错误的解决方法
https://czxcly.cn/posts/解决mysql在查询时报1055分组查询错误的解决方法/
作者
启源学社
发布于
2022-01-22
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
启源学社
公告
欢迎来到我的博客!
音乐
封面

音乐

暂未播放

0:00 0:00
暂无歌词
分类
标签
站点统计
文章
45
分类
2
标签
16
总字数
16,178
运行时长
0
最后活动
0 天前

文章目录