1. Toán tử IN
Các toán tử IN cho phép chỉ định nhiều giá trị trong một mệnh đề WHERE. Các toán tử IN cũng có thể hiểu là một cách viết tắt cho nhiều điều kiện của toán tử OR
Cú pháp của toán tử IN như sau:
SELECT column_name(s) FROM table_name WHERE column_name IN (value1, value2, ...);
Hoặc có thể viết câu lệnh truy vấn trong toán tử IN như sau:
SELECT column_name(s) FROM table_name WHERE column_name IN (SELECT statement);
2. Ví dụ toán tử IN
Dưới đây là bảng KhachHang bao gồm các cột: ID, TenKH, DiaChi, ThanhPho, SoDienThoai
ID | TenKH | DiaChi | ThanhPho | SoDienThoai |
1 | Nguyen Van A | Tay Ho | Ha Noi | 0888999888 |
2 | Nguyen Van B | Quan 5 | Ho Chi Minh | 0988988988 |
3 | Nguyen Van C | Quan 7 | Ho Chi Minh | 0899899899 |
4 | Nguyen Van D | Bac Tu Liem | Ha Noi | 0788788788 |
5 | Nguyen Van E | Ngo Quen | Hai Phong | 0858585858 |
6 | Nguyen Van F | Ngu Hanh Son | Da Nang | 0969696969 |
7 | Nguyen Van G | Tay Ho | Ha Noi | 0838383838 |
Câu lệnh dưới đây sẽ chọn ra tất cả khách hàng có thành phố là “Ha Noi” , “Hai Phong” hoặc “Da Nang”, để thực hiện được việc này, ta sẽ sử dụng toán tử IN
SELECT * FROM KhachHang WHERE ThanhPho IN ('Ha Noi', 'Hai Phong', 'Da Nang');
Kết quả như sau:
ID | TenKH | DiaChi | ThanhPho | SoDienThoai |
1 | Nguyen Van A | Tay Ho | Ha Noi | 0888999888 |
4 | Nguyen Van D | Bac Tu Liem | Ha Noi | 0788788788 |
5 | Nguyen Van E | Ngo Quen | Hai Phong | 0858585858 |
6 | Nguyen Van F | Ngu Hanh Son | Da Nang | 0969696969 |
7 | Nguyen Van G | Tay Ho | Ha Noi | 0838383838 |
Để lấy ra các thông tin các khách hàng không có thành phố ở “Ha Noi” , “Hai Phong” hoặc “Da Nang” ta cần sử dụng đến toán tử phủ định của IN đó là toán tử NOT IN
SELECT * FROM KhachHang WHERE ThanhPho NOT IN ('Ha Noi', 'Hai Phong', 'Da Nang');
Kết quả:
ID | TenKH | DiaChi | ThanhPho | SoDienThoai |
2 | Nguyen Van B | Quan 5 | Ho Chi Minh | 0988988988 |
3 | Nguyen Van C | Quan 7 | Ho Chi Minh | 0899899899 |
Câu lệnh dưới đây lấy ra thông tin những khách hàng chưa từng đặt hàng trong bảng DatHang bằng câu lệnh NOT IN bên trong là câu truy vấn SELECT đến bảng DatHang
SELECT * FROM KhachHang WHERE ID NOT IN (SELECT KhachHangID FROM DatHang);
Câu lệnh ở trên sẽ lấy ra các ID trong bảng KhachHang đi kiểm tra với các KhachHangID trong bảng DatHang, nếu ID nào không có trong câu lệnh SELECT KhachHangID FROM DatHang
thì thông tin của khách hàng đó trong bảng KhachHang sẽ được chọn ra.