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
Ví dụ:

- 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
Ví dụ:

- 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.