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.
✅ Đố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ư: = > >= < <= != <>
2) Tham khảo một số ví dụ
- Trong bài học này, tôi sẽ sử dụng cái bảng Student như bên dưới để làm một số ví dụ minh họa.
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 |
- Liệt kê những sinh viên có độ tuổi lớn hơn bất kỳ một sinh viên nào sống ở Cần Thơ.
SELECT *
FROM Student
WHERE Age > ANY (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 |
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ơ |
- Liệt kê những sinh viên có độ tuổi lớn hơn tất cả các sinh viên sống ở Cần Thơ.
SELECT *
FROM Student
WHERE Age > 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ơ";
Age |
22 |
25 |
26 |
- 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ơ";
Age |
22 |
25 |
26 |
- 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 |