在 MySQL 中 WHERE 與 HAVING 的區別?
我們可以使用一個稱為 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,將生成一個 ERROR。
mysql> select sum(Price) from WhereDemo where Sum(Price) > 200; ERROR 1111 (HY000): Invalid use of group function
廣告
資料結構
網路
關係型資料庫管理系統
作業系統
Java
iOS
HTML
CSS
Android
Python
C 程式設計
C++
C#
MongoDB
MySQL
Javascript
PHP