Cách sử dụng toán tử IN trong MySQL
- Trong hệ quản trị cơ sở dữ liệu MySQL, toán tử IN thường được sử dụng bởi mệnh đề WHERE để thực hiện việc chọn lọc dữ liệu theo điều kiện (toán tử IN sẽ khai báo một tập hợp các giá trị, nếu giá trị dữ liệu của cột cần tìm trùng khớp với một trong số những giá trị được khai báo thì tức là thỏa điều kiện)
- Toán tử IN có hai cách sử dụng như sau:
- Cách 1: Khai báo một tập hợp những giá trị cụ thể.
SELECT column1, column2, column3, . . . .
FROM table_name
WHERE column_name IN (value1, value2, value3, value4, value5, . . . .);
- Cách 2: Khai báo một câu lệnh chọn lọc dữ liệu để trả về một cột các giá trị.
SELECT column1, column2, column3, . . . .
FROM table_name
WHERE column_name IN (câu lệnh SELECT);
MỘT SỐ VÍ DỤ
- Trong bài học này, tôi sẽ sử dụng hai cái bảng SinhVien & ThanhPho như bên dưới để làm ví dụ minh họa:
MSSV | HoTen | GioiTinh | Tuoi | ThanhPho |
1 | Nguyễn Thành Nhân | Nam | 22 | An Giang |
2 | Phạm Thu Hiền | Nữ | 18 | Cần Thơ |
3 | Dương Văn Gánh | Nam | 23 | Bạc Liêu |
4 | Lê Thị Tuyết Nhung | Nữ | 19 | Sóc Trăng |
5 | Trần Thị Huỳnh Như | Nữ | 20 | Cần Thơ |
6 | Doãn Thiên Sầu | Nam | 18 | An Giang |
7 | Tì Sa Môn Thiên | Nam | 21 | Vĩnh Long |
MSTP | TenThanhPho |
1 | Cần Thơ |
2 | Vĩnh Long |
3 | Sóc Trăng |
4 | An Giang |
5 | Bạc Liêu |
- Liệt kê những sinh viên sống tại Cần Thơ, Vĩnh Long, Sóc Trăng
SELECT *
FROM SinhVien
WHERE ThanhPho IN ("Cần Thơ", "Vĩnh Long", "Sóc Trăng");
- 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:
MSSV | HoTen | GioiTinh | Tuoi | ThanhPho |
2 | Phạm Thu Hiền | Nữ | 18 | Cần Thơ |
4 | Lê Thị Tuyết Nhung | Nữ | 19 | Sóc Trăng |
5 | Trần Thị Huỳnh Như | Nữ | 20 | Cần Thơ |
7 | Tì Sa Môn Thiên | Nam | 21 | Vĩnh Long |
- Liệt kê những sinh viên sống tại các thành phố có MSTP lớn hơn 3
SELECT *
FROM SinhVien
WHERE ThanhPho IN (SELECT TenThanhPho FROM ThanhPho WHERE MSTP > 3);
- 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:
MSSV | HoTen | GioiTinh | Tuoi | ThanhPho |
1 | Nguyễn Thành Nhân | Nam | 22 | An Giang |
3 | Dương Văn Gánh | Nam | 23 | Bạc Liêu |
6 | Doãn Thiên Sầu | Nam | 18 | An Giang |
- Việc sử dụng toán tử IN cũng tương tự như dùng mệnh đề WHERE với nhiều toán tử OR.