[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by
时间: 2023-07-18 14:08:39 浏览: 138
μCOS-II中OS_TASK.C源码中文注释版
5星 · 资源好评率100%
这个错误是由于MySQL的SQL模式设置不当引起的。在MySQL 5.7.5之后,只有在GROUP BY子句中的所有列都是聚合函数的参数或分组列时,才允许使用ORDER BY子句。您可以通过两种方式解决此问题:
1. 更改MySQL的SQL模式
您可以通过修改MySQL的SQL模式来解决此问题。您可以使用以下命令查看当前的SQL模式:
```
SELECT @@sql_mode;
```
如果结果中包含"ONLY_FULL_GROUP_BY",则意味着MySQL在执行GROUP BY查询时会强制所有非聚合列都出现在GROUP BY子句中。您可以使用以下命令将SQL模式更改为不包含"ONLY_FULL_GROUP_BY":
```
SET GLOBAL sql_mode=(SELECT REPLACE(@@sql_mode,'ONLY_FULL_GROUP_BY',''));
```
请注意,这种方法会修改MySQL的全局SQL模式设置,可能会影响到其他用户的查询。
2. 修改查询语句
您也可以通过修改查询语句来解决此问题。您可以将非聚合列添加到GROUP BY子句中,或者使用聚合函数对非聚合列进行聚合。例如,以下查询语句将SEQ列进行求和,并将结果按ID列进行排序:
```
SELECT ID, SUM(SEQ) AS SEQ_SUM
FROM your_table
GROUP BY ID
ORDER BY SEQ_SUM;
```
阅读全文