Chúng ta có thể sử dụng một mệnh đề điều kiện được gọi là Mệnh đề WHERE để lọc ra kết quả. Sử dụng mệnh đề WHERE này, chúng ta có thể chỉ định tiêu chí lựa chọn để chọn các bản ghi được yêu cầu từ một bảng. Mệnh đề HAVING chỉ định các điều kiện lọc cho một nhóm hàng hoặc tập hợp
Mệnh đề WHERE không thể được sử dụng với hàm tổng hợp trong khi HAVING có thể được sử dụng với hàm tổng hợp. Sau đây là một ví dụ -
Bây giờ chúng ta hãy tạo một bảng.
mysql> create table WhereDemo -> ( -> Price int -> ); Query OK, 0 rows affected (0.64 sec)
Chèn bản ghi vào bảng.
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)
Để hiển thị tất cả các bản ghi.
mysql> select *from WhereDemo;
Sau đây là kết quả.
+-------+ | Price | +-------+ | 100 | | 200 | | 300 | | 400 | +-------+ 4 rows in set (0.00 sec)
Mệnh đề HAVING có thể được sử dụng với hàm tổng hợp.
mysql> select sum(Price) from WhereDemo HAVING Sum(Price) > 500;
Sau đây là kết quả.
+------------+ | sum(Price) | +------------+ | 1000 | +------------+ 1 row in set (0.00 sec)
Ở đây, nếu chúng tôi cố gắng sử dụng WHERE với hàm tổng hợp, một LỖI sẽ được tạo ra.
mysql> select sum(Price) from WhereDemo where Sum(Price) > 200; ERROR 1111 (HY000): Invalid use of group function