[42000][1055] Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'test.a.结果' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by,该如何解决
时间: 2023-07-18 10:24:01 浏览: 131
这个错误是由于 MySQL 的 SQL 模式设置为 only_full_group_by 导致的,在这种模式下,查询中的 GROUP BY 子句必须包含所有非聚合列。解决这个问题的方法有两种:
1. 修改 SQL 模式,禁用 only_full_group_by。可以通过修改 MySQL 的配置文件或者在查询前执行 SET sql_mode=' ' 命令来实现。
2. 修改查询语句,将非聚合列加入 GROUP BY 子句中。可以根据错误提示中提到的列名,将其加入 GROUP BY 子句中即可。
例如,如果查询语句为:
```
SELECT col1, col2, SUM(col3) AS 结果 FROM table1 GROUP BY col1;
```
可以修改为:
```
SELECT col1, col2, SUM(col3) AS 结果 FROM table1 GROUP BY col1, col2;
```
这样就可以避免这个错误了。
相关问题
[Err] 1055 - Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated colum...
这个错误通常发生在MySQL中,因为MySQL对于GROUP BY查询有一些特殊的限制。
当你在SELECT语句中使用了GROUP BY子句时,MySQL要求在SELECT列表中包含GROUP BY子句中的所有列或者使用聚合函数(如SUM、COUNT、AVG等)对其他列进行聚合。这是为了保证查询结果的正确性。
你可以尝试在SELECT语句中将所有列都包含在GROUP BY子句中,或者使用聚合函数对其他列进行聚合。例如:
```
SELECT column1, column2, SUM(column3)
FROM table
GROUP BY column1, column2
```
这样就可以避免这个错误了。
Error Code: 1055. Expression #3 of SELECT list is not in GROUP BY clause and contains nonaggregated column
这个错误信息是MySQL数据库返回的错误信息,意思是在SELECT语句中,第三个选择的列不在GROUP BY子句中,且不是聚合函数,这与当前的SQL模式(only_full_group_by)不兼容。这个错误通常是由于在GROUP BY子句中没有包含所有的非聚合列而导致的。解决这个问题的方法是要么将所有的非聚合列都包含在GROUP BY子句中,要么将它们转换为聚合函数。
阅读全文