Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> MySQL

Cách lấy nhiều hàng trong một truy vấn MySQL với IN()

Để 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 đương Id=100 OR Id=120 OR Id=130 như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.