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;