Để 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.