Trong bài viết trước chúng ta đã cùng tìm hiểu Mệnh đề WHERE trong MySQL – Mệnh đề điều kiện, và biết cách áp dụng. Trong bài viết này chúng ta sẽ cùng tìm hiểu thêm mệnh đề Where in và Where not in, cách áp dụng Where in và Where not in, Sự khác nhau giữa where và where in, Where not in như thế nào nhé.
WHERE IN trong MySQL
Cũng tương tự như mệnh đề WHERE, Mệnh đề WHERE IN cũng là một mệnh đề để lọc các giá trị bản ghi từ điều kiện cụ thể. Tuy nhiên với WHERE IN ta sẽ có thể kiểm tra điều kiện nằm trong một tập hợp các giá trị, thay vì phải sử dụng nhiều điều kiện kết hợp như mệnh đề WHERE.
Cú pháp WHERE IN
SELECT * FROM table
WHERE column_name IN (value1, value2, value3);
Trong đó:
- table: Tên bảng
- column_name: Tên cột kiểm tra điều kiện
- value1, value2, value3: Các giá trị nằm trong tập hợp.
Ví dụ áp dụng
Mình có bảng users như bên dưới đây.
Để lấy ra các user có id là 6,10,11,13,15. Thay vì sử dụng mệnh đề where kết hợp nhiều cầu điều kiện WHERE id = 6 OR id = 10 OR id = 11…., như vậy quá dài dòng nếu trong trường hợp cần lấy rất nhiều user theo id.
Khi sử dụng mệnh đề WHERE IN sẽ ngắn gọn hơn rất nhiều. Viết SQL đầy đủ như sau.
SELECT * FROM users
WHERE id IN (6,10,11,13,15);
Và đây là kết quả khi thực hiện câu lệnh.
Như vậy các hàng có id thuộc vào tập giá trị trên đã được đưa ra kết quả.
WHERE NOT IN trong MySQL
WHERE NOT IN cách hoạt động hoàn toàn đối ngược với WHERE IN. Thay vì lấy các record có điều kiện nằm trong tập hợp, WHERE NOT IN sẽ loại bỏ các record thuộc vào tập giá trị.
Cú pháp where not in
SELECT * FROM table
WHERE column_name NOT IN (value1, value2, value3);
Cũng với ví dụ bên trên, viết lệnh SQL để lấy ra các user có id không thuộc vào tập id bên trên.
SELECT * FROM users
WHERE id NOT IN (6,10,11,13,15);
Và đây là kết quả khi thực hiện câu lệnh.
Như vậy các user có id thuộc vào tập trên đã bị loại bỏ.
Cảm ơn bạn đã đọc hết bài viết, hy vọng qua bài viết này bạn đã nắm rõ và áp dụng được WHERE IN và WHERE NOT IN vào các bài toán thực tế! CHúc bạn học TỐT!!
[XEM CÁC BÀI VIẾT CHUYÊN ĐỀ HỌC MYSQL CƠ BẢN TẠI ĐÂY]
XEM THÊM Câu lệnh INSERT INTO trong MySQL – Lệnh chèn dữ liệu vào bảng Câu lệnh CREATE TABLE trong MySQL – Lệnh tạo bảng mới Các kiểu dữ liệu trong MySQL (Data Types) – Học MySQL Câu lệnh SELECT trong MySQL – Khi nào thì dùng lệnh SELECT Mệnh đề FROM trong MySQL – truy vấn từ bảng nào Câu lệnh CREATE TABLE – Lệnh tạo bảng mới Câu lệnh TRUNCATE TABLE trong MySQL – Loại bỏ tất cả bản ghi