mysql 遇到此问题解决办法:Expression #7 of SELECT list is not in GROUP BY clause and contains nonaggre

问题出现原因:

MySQL 5.7.5 及以上功能依赖检测功能,如果启用了 ONLY_FULL_GROUP_BY SQL 模式(默认情况下启用),MySQL 将拒绝选择列表,Having 条件或 Order by 列表的查询引用在 Group By 字句中即未命名的非集合列,也不在功能上依赖于它们。

解决方法一【重启服务就会失效】:

// 使用 sql 查询
select @@global.sql_mode
// 查询出来的值为
ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

去掉 ONLY_FULL_GROUP_BY ,自己重新设置值。

set @@global.sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';

如果所示:
在这里插入图片描述

解决方法二【永久解决】:

找到自己电脑上的 mysql 安装目录,编辑 my.ini 配置文件:
在这里插入图片描述
编辑内容如下:

# 修改MySQL5.7.5及以上依赖检测功能
sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

修改完后保存并退出,然后重启 mysql 服务,再次测试即可。

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43647359/article/details/106343013