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;