which is not functionally dependent on columns in GROUP BY clause; th ...

火影  金牌会员 | 2024-8-13 06:31:04 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 545|帖子 545|积分 1635

问题描述

查询MySql表中的数据时遇到这样一个报错:
   Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'axhyh-xs-local.apply.PATIENT_NAME' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
   报错如图:


问题原因及基本思路 

该问题的原因是 sql_mode不兼容,因此基本思路是修改本机所安装mysql的sql_mode,也就是把报错中 sql_mode=only_full_group_by去掉 only_full_group_by这种mode即可。
解决步调

1. 找到本身Mysql的安装位置

如果你知道本身的Mysql安装位置那么直接到文件夹打开即可。

如果不知道,可通过下面方式查询:
在mysql查询软件中执行sql语句:select @@datadir;
如下图
 
2. 修改 my.ini 配置文件 

用记事本打开my.ini文件,在 [mysqld] 下面添加sql_mode的配置语句:
   sql_mode=STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 
  注意: 
这行sql_mode配置肯定要在 [mysqld] 下方,而不是 [mysql] 或 [client]下方,否则无效!
这行配置的内容因人而异,上述只是我本机的配置。大概我的配置应用到你电脑上也可以解决问题,但也大概遇到无法重启mysql服务的环境。我就是复制了上述其他文章中的配置出现了该环境。
那么,如何获取适合本身电脑的sql_mode配置呢?你需要先查询本身的sql_mode,然后去除only_full_group_by即可。如下图:

 说明:图片中没有显示出ONLY_FULL_GROUP_BY是由于我已经在文件中去掉了。你们查出来正常是有的。
查询结果显示,修改之前我电脑的sql_mode是:(ONLY_FULL_GROUP_BY,STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
因此,在此基础上去掉 ONLY_FULL_GROUP_BY
结果是:STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION
这就是正确的sql_mode配置的由来!
 附上我完备的my.ini供你参考吧:
   [client]
port=3306
default-character-set=utf8
[mysqld]
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的安装目录
basedir=F:\mysql5.7.19\mysql-5.7.19-winx64\
# 设置为MYSQL的数据目录
datadir=F:\mysql5.7.19\mysql-5.7.19-winx64\data\
port=3306
character_set_server=utf8
#跳过安全检查
#skip-grant-tables
log-bin=mysql-bin # 开启 binlog
binlog-format=ROW # 选择 ROW 模式
server_id=1 # 配置 MySQL replaction 需要定义,不要和 canal 的 slaveId 重复
  #log=F:\mysql5.7.19\mysql.log
  
3. 重启MySql服务以生效配置 


验证问题解决 



免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

火影

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表