group by 出现 sql_mode=only_full_group_by 如何查询所有列
时间: 2023-09-21 15:02:46 浏览: 69
解决MySQL 5.7.9版本sql_mode=only_full_group_by问题
在 `sql_mode=only_full_group_by` 模式下,如果 `SELECT` 语句中使用了 `GROUP BY`,那么查询的列必须是 `GROUP BY` 后的列或者聚合函数,否则会报错。如果你要查询所有列,可以使用以下两种方法:
1. 在 `GROUP BY` 子句中列出所有列
```
SELECT col1, col2, col3, SUM(col4)
FROM table
GROUP BY col1, col2, col3;
```
这种方法需要手动列出所有的列,比较麻烦,但是可以确保查询结果的正确性。
2. 使用聚合函数
```
SELECT *, SUM(col4)
FROM table
GROUP BY col1, col2, col3;
```
这种方法使用了 `*` 通配符和聚合函数,可以自动查询所有列,但是需要注意,如果有某些列不是分组依据,也不是聚合函数,那么这些列的值可能是不确定的。
需要根据具体情况选择使用哪种方法。
阅读全文