Toán tử SQL IN
Toán tử SQL IN
Toán tử IN
cho phép bạn chỉ định nhiều giá trị trong mệnh đề WHERE
.
Toán tử IN
là cách viết tắt của nhiều điều kiện OR
.
Ví dụ
Trả lại tất cả khách hàng từ 'Đức', 'Pháp' hoặc 'Anh'
SELECT * FROM Customers
WHERE Country IN ('Germany', 'France', 'UK');
Hãy tự mình thử »Cú pháp
SELECT column_name(s)
FROM table_name
WHERE column_name IN ( value1 , value2 , ...);
Cơ sở dữ liệu demo
Dưới đây là lựa chọn từ bảng Khách hàng được sử dụng trong các ví dụ:
CustomerID | CustomerName | ContactName | Address | City | PostalCode | Country |
---|---|---|---|---|---|---|
1 |
Alfreds Futterkiste | Maria Anders | Obere Str. 57 | Berlin | 12209 | Germany |
2 | Ana Trujillo Emparedados y helados | Ana Trujillo | Avda. de la Constitución 2222 | México D.F. | 05021 | Mexico |
3 | Antonio Moreno Taquería | Antonio Moreno | Mataderos 2312 | México D.F. | 05023 | Mexico |
4 |
Around the Horn | Thomas Hardy | 120 Hanover Sq. | London | WA1 1DP | UK |
5 | Berglunds snabbköp | Christina Berglund | Berguvsvägen 8 | Luleå | S-958 22 | Sweden |
KHÔNG VÀO
Bằng cách sử dụng từ khóa NOT
phía trước toán tử IN
, bạn trả về tất cả các bản ghi KHÔNG có bất kỳ giá trị nào trong danh sách.
Ví dụ
Trả lại tất cả khách hàng KHÔNG đến từ 'Đức', 'Pháp' hoặc 'Anh':
SELECT * FROM Customers
WHERE Country NOT IN ('Germany', 'France', 'UK');
Hãy tự mình thử »VÀO (CHỌN)
Bạn cũng có thể sử dụng IN
với truy vấn con trong mệnh đề WHERE
.
Với truy vấn phụ, bạn có thể trả về tất cả các bản ghi từ truy vấn chính có trong kết quả của truy vấn phụ.
Ví dụ
Trả về tất cả khách hàng có đơn hàng trong bảng Đơn hàng :
SELECT * FROM Customers
WHERE CustomerID IN (SELECT CustomerID FROM Orders);
Hãy tự mình thử »KHÔNG VÀO (CHỌN)
Kết quả ở ví dụ trên trả về 74 bản ghi, tức là có 17 khách hàng chưa đặt hàng.
Hãy để chúng tôi kiểm tra xem điều đó có đúng không bằng cách sử dụng toán tử NOT IN
.
Ví dụ
Trả về tất cả khách hàng CHƯA đặt bất kỳ đơn hàng nào trong bảng Đơn hàng :
SELECT * FROM Customers
WHERE CustomerID NOT IN (SELECT CustomerID FROM Orders);
Hãy tự mình thử »