Mệnh đề IN() trong MySQL cho phép truy vấn con trả về nhiều giá trị để so sánh.
Ví dụ minh họa
Tạo bảng:
mysql> CREATE TABLE DemoTable1317 (
Id INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
Name VARCHAR(20)
);
Chèn dữ liệu:
mysql> INSERT INTO DemoTable1317(Name) VALUES('Chris Brown');
mysql> INSERT INTO DemoTable1317(Name) VALUES('John Doe');
mysql> INSERT INTO DemoTable1317(Name) VALUES('Adam Smith');
mysql> INSERT INTO DemoTable1317(Name) VALUES('John Smith');
mysql> INSERT INTO DemoTable1317(Name) VALUES('David Miller');
mysql> INSERT INTO DemoTable1317(Name) VALUES('Carol Taylor');
Xem dữ liệu:
mysql> SELECT * FROM DemoTable1317;
+----+--------------+ | Id | Name | +----+--------------+ | 1 | Chris Brown | | 2 | John Doe | | 3 | Adam Smith | | 4 | John Smith | | 5 | David Miller | | 6 | Carol Taylor | +----+--------------+
Truy vấn con với IN() - lấy Name của các Id tồn tại trong bảng (ví dụ đơn giản):
mysql> SELECT Name FROM DemoTable1317
WHERE Id IN (SELECT Id FROM DemoTable1317);
Kết quả (trả về tất cả vì Id khớp chính nó):
+--------------+ | Name | +--------------+ | Chris Brown | | John Doe | | Adam Smith | | John Smith | | David Miller | | Carol Taylor | +--------------+
Ứng dụng thực tế: Thường dùng IN (SELECT ...) với điều kiện lọc khác, ví dụ: WHERE CategoryId IN (SELECT Id FROM Categories WHERE Active = 1).