mysql where和having的区别并举出例子
时间: 2024-01-13 07:03:11 浏览: 70
`WHERE`和`HAVING`都是用来筛选数据的关键字,但它们的应用场景有所不同。
`WHERE`用于筛选行,指定条件对行进行过滤,只返回符合条件的行。它在数据分组前起作用,因此它只能筛选非聚合数据。例如:
```sql
SELECT * FROM orders WHERE price > 100;
```
这条SQL语句会返回所有订单中价格大于100的记录。
`HAVING`用于筛选组,指定条件对分组后的结果进行过滤,只返回符合条件的分组。它在数据分组后起作用,因此它只能筛选聚合数据。例如:
```sql
SELECT category, SUM(price) FROM orders GROUP BY category HAVING SUM(price) > 1000;
```
这条SQL语句会返回所有订单按照类别分组后,总价大于1000的类别和总价。
需要注意的是,`HAVING`必须与`GROUP BY`一起使用,而`WHERE`则不需要。
阅读全文