[Err] 1055 - Expression #1 of ORDER BY clause is not in GROUP BY clause 解决办法 MySQL
时间: 2023-11-08 22:03:57 浏览: 78
MySQL异常:[Err] 1055 – Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nona…
5星 · 资源好评率100%
在 MySQL 中,当你在使用 GROUP BY 子句时,如果在 SELECT 语句中包含了其他列,那么这些列必须被包含在 GROUP BY 子句中或者通过聚合函数进行处理。否则,将会出现 "Expression #1 of ORDER BY clause is not in GROUP BY clause" 的错误。
解决办法之一是,将非聚合列添加到 GROUP BY 子句中。例如,假设你有一个名为 "table_name" 的表,其中包含列 "column1" 和 "column2"。你可以使用以下查询来解决这个问题:
```sql
SELECT column1, column2
FROM table_name
GROUP BY column1, column2
ORDER BY column1;
```
这样,你就将 "column1" 和 "column2" 添加到了 GROUP BY 子句中,并且可以按照 "column1" 进行排序。
如果你不想将非聚合列添加到 GROUP BY 子句中,你可以使用聚合函数来处理它们。例如,假设你只想按照 "column1" 进行排序,可以使用 MAX() 函数来处理 "column2":
```sql
SELECT column1, MAX(column2) AS max_column2
FROM table_name
GROUP BY column1
ORDER BY column1;
```
通过将 "column2" 使用 MAX() 函数进行聚合,你可以在不将其添加到 GROUP BY 子句中的情况下按照 "column1" 进行排序。
阅读全文