group by 出现 sql_mode=only_full_group_by 如何查询所有列
时间: 2023-09-21 14:02:40 浏览: 71
MySql版本问题sql_mode=only_full_group_by的完美解决方案
在MySQL中,启用了`sql_mode`中的`ONLY_FULL_GROUP_BY`选项后,如果`GROUP BY`语句中的列不是聚合函数或`GROUP BY`子句中的列,就会出现错误。要查询所有列,可以使用以下两种方法:
1. 在`GROUP BY`语句中添加所有列:
```sql
SELECT col1, col2, col3, SUM(col4)
FROM table
GROUP BY col1, col2, col3;
```
2. 使用聚合函数来替换所有列,这样就不需要在`GROUP BY`子句中包含所有列:
```sql
SELECT MAX(col1), MAX(col2), MAX(col3), SUM(col4)
FROM table
GROUP BY col1, col2, col3;
```
这些方法可以让您查询所有列而不会出现`ONLY_FULL_GROUP_BY`错误。
阅读全文