MySQL 中的 WHERE 与 HAVING?
mysqlmysqli database
我们可以使用称为 WHERE 子句的条件子句来过滤结果。使用此 WHERE 子句,我们可以指定选择条件以从表中选择所需的记录。HAVING 子句为行组或聚合指定过滤条件
WHERE 子句不能与聚合函数一起使用,而 HAVING 可以与聚合函数一起使用。以下是示例 −
现在让我们创建一个表。
mysql> create table WhereDemo -> ( -> Price int -> ); Query OK, 0 rows affected (0.64 sec)
将记录插入表中。
mysql> insert into WhereDemo values(100); Query OK, 1 row affected (0.13 sec) mysql> insert into WhereDemo values(200); Query OK, 1 row affected (0.21 sec) mysql> insert into WhereDemo values(300); Query OK, 1 row affected (0.15 sec) mysql> insert into WhereDemo values(400); Query OK, 1 row affected (0.12 sec)
显示所有记录。
mysql> select *from WhereDemo;
以下是输出。
+-------+ | Price | +-------+ | 100 | | 200 | | 300 | | 400 | +-------+ 4 rows in set (0.00 sec)
HAVING 子句可以与聚合函数一起使用。
mysql> select sum(Price) from WhereDemo HAVING Sum(Price) > 500;
以下是输出。
+------------+ | sum(Price) | +------------+ | 1000 | +------------+ 1 row in set (0.00 sec)
在这里,如果我们尝试将 WHERE 与聚合函数一起使用,则会产生错误。
mysql> select sum(Price) from WhereDemo where Sum(Price) > 200; ERROR 1111 (HY000): Invalid use of group function