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

Dùng LIKE % với OR để lấy nhiều giá trị trong một truy vấn MySQL

Để lọc nhiều giá trị khớp mẫu (pattern) trong cùng một cột, bạn kết hợp nhiều điều kiện LIKE với toán tử OR.

Ví dụ minh họa

Tạo bảng:

mysql> create table DemoTable1027 ( 
    Id int, 
    Name varchar(100) 
);

Chèn dữ liệu:

mysql> insert into DemoTable1027 values(100,'John');
mysql> insert into DemoTable1027 values(20,'Chris');
mysql> insert into DemoTable1027 values(200,'Robert');
mysql> insert into DemoTable1027 values(400,'Mike');

Hiển thị dữ liệu:

mysql> select * from DemoTable1027;

Kết quả:

+------+--------+
| Id   | Name   |
+------+--------+
| 100  | John   |
| 20   | Chris  |
| 200  | Robert |
| 400  | Mike   |
+------+--------+

Truy vấn LIKE %100% OR LIKE %200%

mysql> select * from DemoTable1027 where Id LIKE '%100%' or Id LIKE '%200%';

Kết quả:

+------+--------+
| Id   | Name   |
+------+--------+
| 100  | John   |
| 200  | Robert |
+------+--------+

Giải thích:

  • Id LIKE '%100%': Khớp Id chứa chuỗi '100' ở bất kỳ vị trí nào → 100, 1000, 1100, 2100...
  • Id LIKE '%200%': Khớp Id chứa '200' → 200, 1200, 2000...
  • OR: Hợp nhất kết quả 2 điều kiện

⚠️ Lưu ý hiệu suất: LIKE '%...%' với wildcard ở đầu KHÔNG sử dụng index (full table scan). Trên bảng lớn, rất chậm.

Thay thế tốt hơn: Nếu Id là số, dùng Id IN (100, 200) hoặc Id = 100 OR Id = 200 để tận dụng index. Chỉ dùng LIKE khi thực sự cần tìm mẫu chuỗi.