Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'smart.sm_c_talking_content_info.id' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
时间: 2023-08-27 12:46:44 浏览: 108
这个错误提示是因为MySQL数据库的sql_mode参数设置了only_full_group_by模式,该模式要求在GROUP BY语句中必须包含所有SELECT的字段,或者使用聚合函数对没有包含在GROUP BY语句中的字段进行聚合。如果某个字段在GROUP BY语句中没有出现,同时也没有使用聚合函数进行聚合,就会出现上述错误。
解决这个问题的方法有两种:
1. 修改sql_mode参数,将其设置为非only_full_group_by模式。可以通过以下命令查看当前的sql_mode参数:
SELECT @@sql_mode;
如果结果中包含only_full_group_by,则说明当前设置为该模式。可以通过以下命令将其修改为默认模式:
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
注意,修改全局的sql_mode参数可能会影响其他应用程序的正常运行,因此需要谨慎操作。
2. 在GROUP BY语句中包含所有SELECT的字段,或者使用聚合函数对没有包含在GROUP BY语句中的字段进行聚合。例如:
SELECT id, MAX(name) FROM table1 GROUP BY id;
上述语句中,虽然只有id和name两个字段被SELECT出来,但是在GROUP BY语句中包含了id字段,同时使用了MAX函数对name字段进行了聚合,因此不会出现上述错误。
相关问题
SQL 错误 [1055] [42000]: Expression #2 of SELECT list is not in GROUP BY clause and contains nonaggregated column 'smart.sm_c_talking_content_info.answer' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
这个错误提示和上一个问题类似,也是由于MySQL数据库的sql_mode参数设置了only_full_group_by模式,要求在GROUP BY语句中必须包含所有SELECT的字段,或者使用聚合函数对没有包含在GROUP BY语句中的字段进行聚合。如果某个字段在GROUP BY语句中没有出现,同时也没有使用聚合函数进行聚合,就会出现上述错误。
解决这个问题的方法也和上一个问题类似,可以修改sql_mode参数,或者在GROUP BY语句中包含所有SELECT的字段,或者使用聚合函数对没有包含在GROUP BY语句中的字段进行聚合。
例如,如果你想要按照id分组,并且在每个分组中获取最大的answer值,可以使用以下语句:
SELECT id, MAX(answer) FROM table1 GROUP BY id;
这样就可以避免上述错误的出现。如果你需要同时获取其他的字段,可以在SELECT语句中添加聚合函数或者在GROUP BY语句中包含这些字段。
[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
```
这样就可以避免这个错误了。
阅读全文