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