which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by问题分析


SELECT a.Id, a.PhoneNo, a.Content, a.transactionId FROM MarketBatchDetails a INNER JOIN (SELECT Id FROM MarketBatchInfo WHERE TaskId = 4970001612723 AND BatchType = 1) b ON a.BatchId = b.Id WHERE a.Status= 4 AND a.TaskId = 4970001612723 AND a.UpdateTime BETWEEN '2021-11-23 00:00:00' AND '2021-11-23 23:59:59' GROUP BY a.PhoneNo ORDER BY a.Id LIMIT 0, 1000 ;

执行sql时报错

1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'aisp_biz.a.Id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

需要修改sql_mode

先查看:

SELECT VERSION()     
SELECT @@sql_mode;

 

 

 需要修改圈出的部分

有两种方法:

1、SET GLOBAL sql_mode='STRICT_TRANS_TABLES'   临时修改

2、修改配置文件因我的mysql是在docker容器管理的所以麻烦些

docker cp   my-mysql7:/etc/mysql/mysql.conf.d/   /data/my/mysqld.cnf  复制容器内的配置文件到本地

vim mysqld.cnf  添加配置  :sql_mode=STRICT_TRANS_TABLES

 

 

docker cp  /data/my/mysqld.cnf  my-mysql7:/etc/mysql/mysql.conf.d/     复制本地文件到容器内

 docker restart my-mysq  重启

查询SELECT @@sql_mode; 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM