Trong bài này chúng ta sẽ học hai lệnh mới dùng để kiểm tra một giá trị có nằm trong một dãy giá trị khác hay không và đó chính là lệnh IN và NOT IN trong SQL.
1. Lệnh IN trong SQL
IN dịch ra tiếng Anh có nghĩa là “trong“, và ý nghĩa của nó trong SQL là kiểm tra có nằm trong một dãy giá trị hay không. Ví dụ kiểm tra địa chỉ có nằm trong 3 tỉnh: Đăklăk, ĐăkNông, Gia lai hay không thì ta có thể sử dụng IN. Cú pháp như sau:
SELECT columns_list FROM table_name WHERE column_name IN (list_value);
Trong đó list_value là tập các giá trị được cách nhau bởi dấu phẩy.
Với ví dụ trên thì ta có thể viết như sau:
Bài viết này được đăng tại [kiso.vn]
SELECT * FROM table_name WHERE address IN ("Daklak", "DakNong", "Gia Lai");
Ví dụ: kiểm tra điểm của giáo viên chấm có nằm trong khoảng từ 0 đến 10 hay không, nếu khác tức là giáo viên chấm sai.
SELECT * FROM exams WHERE score IN (0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
Để chuyển đổi lệnh IN sang cú pháp thông thường thì ta sử dụng toán tử OR.
SELECT * FROM exams WHERE score = 0 OR score = 1 OR score = 2 OR score = 3 OR score = 4 OR score = 5 OR score = 6 OR score = 7 OR score = 8 OR score = 9 OR score = 10
2. Lệnh NOT IN trong SQL
Trong SQL thì lệnh NOT IN sẽ phủ định lại lệnh IN, nghĩa nếu lệnh IN kiểm tra có nằm trong tập giá trị hay không thì lệnh NOT IN lại kiểm tra không nằm trong tập giá trị. Ví dụ kiểm tra địa chỉ của khách hàng có phải không nằm trong ba tỉnh ĐăkLăk, ĐăkNông, Gia Lai.
Cú pháp NOT IN như sau:
SELECT columns_list FROM table_name WHERE column_name NOT IN (list_value);
Ví dụ: Lấy danh sách khách hàng nhưng không được lấy khách hàng đang sống tại Hà Nội và Hải Phòng.
SELECT * FROM customers WHERE address NOT IN ("Ha Noi", "Hai Phong")
Để chuyển thành toán tử khác thì bạn sử dụng AND, với ví dụ này thì mình code lại như sau:
SELECT * FROM customers WHERE address != "Ha Noi" AND address != "Hai Phong";
Như vậy là mình đã giới thiệu xong cách sử dụng toán tử IN và NOT IN trong T-SQL, hẹn gặp lại các bạn ở bài tiếp theo trong chuỗi series tự học SQL nhé.
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Lệnh IN trong SQL2. Lệnh NOT IN trong...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Lệnh IN trong SQL2. Lệnh NOT IN trong SQL1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động trên Linux như một firewall được phát hành miễn...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Lệnh IN trong SQL2. Lệnh NOT IN trong SQLV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ hổng khi trang web sử dụng đường dẫn đầy...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Lệnh IN trong SQL2. Lệnh NOT IN trong SQLV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy ra khi sử dụng các hàm đọc file và...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Lệnh IN trong SQL2. Lệnh NOT IN trong SQLIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình khác nhau, điểm xuất hiện các lỗ hổng Directory...