Tìm hiểu lệnh ANY, ALL trong MySQL
1] Chức năng & cách sử dụng
- Trong hệ quản trị cơ sở dữ liệu MySQL, lệnh ANY & ALL thường được sử dụng kết hợp với các cột & các toán tử để xây dựng nên một cái biểu thức, biểu thức này thường gồm có bốn thành phần chính: tên cột, toán tử so sánh, từ khóa ANY hoặc ALL, một câu lệnh SELECT để trả về một cột dữ liệu.
column
operator
ANY hoặc ALL
[câu lệnh SELECT]
1
2
3
4
✅ Đối với lệnh ANY thì biểu thức column operator ANY [câu lệnh SELECT] sẽ trả về giá trị TRUE nếu cột column có thể kết hợp với ít nhất một giá trị bên trong cột dữ liệu [được trả về từ câu lệnh SELECT] làm cho biểu thức column operator value thỏa điều kiện.
✅ Đối với lệnh ALL thì biểu thức column operator ALL [câu lệnh SELECT] sẽ trả về giá trị TRUE nếu tất cả các lần kết hợp giữa cột column & các giá trị bên trong cột dữ liệu [được trả về từ câu lệnh SELECT] đều làm cho biểu thức column operator value thỏa điều kiện.
- Lưu ý: Operator là các toán tử so sánh, ví dụ như: = > >= ALL [SELECT Age FROM Student WHERE City = "Cần Thơ"];
- Sau khi thực thi câu lệnh phía trên thì tôi sẽ lấy được một bảng dữ liệu như bên dưới:
ID | Name | Gender | Age | City |
3 | Trần Thanh Trúc | Nữ | 27 | Hải Phòng |
GIẢI THÍCH VÍ DỤ 1
ID | Name | Gender | Age | City |
1 | Nguyễn Thành Nhân | Nam | 22 | Cần Thơ |
2 | Dương Văn Gánh | Nam | 19 | Sóc Trăng |
3 | Trần Thanh Trúc | Nữ | 27 | Hải Phòng |
4 | Châu Tinh Trì | Nam | 25 | Cần Thơ |
5 | Lê Thị Huỳnh Như | Nữ | 24 | Bạc Liêu |
6 | Tì Sa Môn Thiên | Nam | 21 | Hậu Giang |
7 | Doãn Chí Bình | Nam | 26 | Cần Thơ |
8 | Phạm Thị Thu Hiền | Nữ | 18 | Vĩnh Long |
SELECT *
FROM Student
WHERE Age > ANY [SELECT Age FROM Student WHERE City = "Cần Thơ"];
- Trước tiên chúng ta hãy xem sơ qua tuổi của các sinh viên sống tại Cần Thơ thông qua câu lệnh SELECT Age FROM Student WHERE City = "Cần Thơ";
- Trong cái bảng Student:
- Trần Thanh Trúc 27 tuổi, lớn hơn tất cả các sinh viên sống tại Cần Thơ thỏa điều kiện.
- Châu Tinh Trì 25 tuổi, lớn hơn Nguyễn Thành Nhân [22 tuổi] sống tại Cần Thơ thỏa điều kiện.
- Lê Thị Huỳnh Như 24 tuổi, lớn hơn Nguyễn Thành Nhân [22 tuổi] sống tại Cần Thơ thỏa điều kiện.
- Doãn Chí Bình 26 tuổi, lớn hơn Nguyễn Thành Nhân [22 tuổi] & Châu Tinh Trì [25 tuổi] sống tại Cần Thơ thỏa điều kiện.
- Những sinh viên còn lại thì không có ai lớn hơn bất kỳ một sinh viên nào sống tại Cần Thơ KHÔNG thỏa điều kiện.
ID | Name | Gender | Age | City |
3 | Trần Thanh Trúc | Nữ | 27 | Hải Phòng |
4 | Châu Tinh Trì | Nam | 25 | Cần Thơ |
5 | Lê Thị Huỳnh Như | Nữ | 24 | Bạc Liêu |
7 | Doãn Chí Bình | Nam | 26 | Cần Thơ |
GIẢI THÍCH VÍ DỤ 2
ID | Name | Gender | Age | City |
1 | Nguyễn Thành Nhân | Nam | 22 | Cần Thơ |
2 | Dương Văn Gánh | Nam | 19 | Sóc Trăng |
3 | Trần Thanh Trúc | Nữ | 27 | Hải Phòng |
4 | Châu Tinh Trì | Nam | 25 | Cần Thơ |
5 | Lê Thị Huỳnh Như | Nữ | 24 | Bạc Liêu |
6 | Tì Sa Môn Thiên | Nam | 21 | Hậu Giang |
7 | Doãn Chí Bình | Nam | 26 | Cần Thơ |
8 | Phạm Thị Thu Hiền | Nữ | 18 | Vĩnh Long |
SELECT *
FROM Student
WHERE Age > ALL [SELECT Age FROM Student WHERE City = "Cần Thơ"];
- Trước tiên chúng ta hãy xem sơ qua tuổi của các sinh viên sống tại Cần Thơ thông qua câu lệnh SELECT Age FROM Student WHERE City = "Cần Thơ";
- Trong cái bảng Student chỉ có mỗi Trần Thanh Trúc 27 tuổi là lớn hơn tất cả các sinh viên sống tại Cần Thơ.
ID | Name | Gender | Age | City |
3 | Trần Thanh Trúc | Nữ | 27 | Hải Phòng |