Cause: java.sql.SQLSyntaxErrorException: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'water.w.worker_image' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
时间: 2023-07-18 18:06:21 浏览: 162
解决MySQL 5.7.9版本sql_mode=only_full_group_by问题
这个错误是因为MySQL的sql_mode设置了only_full_group_by,导致在SELECT语句中的非聚合列必须在GROUP BY子句中出现。
你可以通过以下两种方式来解决这个问题:
1. 修改sql_mode
你可以通过修改MySQL的sql_mode来解决这个问题,将only_full_group_by从sql_mode中删除即可。可以通过以下命令查看当前的sql_mode:
```
SELECT @@sql_mode;
```
然后可以通过以下命令将only_full_group_by从sql_mode中删除:
```
SET sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
```
2. GROUP BY所有非聚合列
另一种解决方法是将SELECT语句中的所有非聚合列都添加到GROUP BY子句中,例如:
```
SELECT w.worker_name, w.worker_image
FROM worker w
GROUP BY w.worker_name, w.worker_image;
```
以上是两种解决这个问题的方法,你可以根据实际情况选择其中之一来解决这个问题。
阅读全文