Để lấy nhiều hàng cụ thể trong một truy vấn đơn, bạn dùng mệnh đề WHERE ... IN (danh sách giá trị).
Ví dụ minh họa
Tạo bảng:
mysql> create table DemoTable (
Id int,
Name varchar(100)
);
Chèn dữ liệu:
mysql> insert into DemoTable values(100,'Chris'); mysql> insert into DemoTable values(110,'David'); mysql> insert into DemoTable values(120,'Robert'); mysql> insert into DemoTable values(130,'Mike');
Hiển thị dữ liệu:
mysql> select * from DemoTable;
Kết quả:
+------+--------+ | Id | Name | +------+--------+ | 100 | Chris | | 110 | David | | 120 | Robert | | 130 | Mike | +------+--------+
Truy vấn IN lấy Id 100, 120, 130
mysql> select * from DemoTable where Id IN(100,120,130);
Kết quả:
+------+--------+ | Id | Name | +------+--------+ | 100 | Chris | | 120 | Robert | | 130 | Mike | +------+--------+
Giải thích:
IN(100,120,130): Tương đươngId=100 OR Id=120 OR Id=130nhưng ngắn gọn, dễ đọc, tối ưu hơn- MySQL tối ưu IN() tốt hơn chuỗi OR dài
- Có thể dùng subquery:
WHERE Id IN (SELECT Id FROM OtherTable ...)
Lưu ý: Trong ví dụ gốc có lỗi gõ: where Id IN(100,120,130): (dấu hai chấm) → phải là dấu chấm phẩy ; hoặc không có dấu kết thúc trong một số client.