Giới thiệu
Để tìm kiếm các giá trị khớp một phần trong chuỗi, MySQL cung cấp toán tử LIKE kết hợp với ký tự đại diện % (khớp 0 hoặc nhiều ký tự) và _ (khớp đúng 1 ký tự).
Ví dụ thực hành
1. Tạo bảng DemoTable806
mysql> CREATE TABLE DemoTable806 (
StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
StudentName VARCHAR(100),
StudentSubject VARCHAR(100)
);
2. Chèn dữ liệu
mysql> INSERT INTO DemoTable806(StudentName,StudentSubject) VALUES('Chris','Java in Depth With Data Structure');
mysql> INSERT INTO DemoTable806(StudentName,StudentSubject) VALUES('Robert','Introduction to MySQL');
mysql> INSERT INTO DemoTable806(StudentName,StudentSubject) VALUES('Bob','C++ in Depth With Data Structure And Algorithm');
mysql> INSERT INTO DemoTable806(StudentName,StudentSubject) VALUES('Adam','Introduction to MongoDB');
3. Tìm môn học chứa từ 'Depth'
mysql> SELECT * FROM DemoTable806 WHERE StudentSubject LIKE '%Depth%';
4. Kết quả
+-----------+-------------+------------------------------------------------+
| StudentId | StudentName | StudentSubject |
+-----------+-------------+------------------------------------------------+
| 1 | Chris | Java in Depth With Data Structure |
| 3 | Bob | C++ in Depth With Data Structure And Algorithm |
+-----------+-------------+------------------------------------------------+
Các mẫu LIKE phổ biến
| Mẫu | Ý nghĩa |
|---|---|
%abc% | Chuỗi chứa 'abc' ở bất kỳ vị trí nào |
abc% | Chuỗi bắt đầu bằng 'abc' |
%abc | Chuỗi kết thúc bằng 'abc' |
_abc | Chuỗi 4 ký tự, 3 ký tự cuối là 'abc' |
a_c | Chuỗi 3 ký tự, ký tự giữa bất kỳ |
Lưu ý hiệu suất
- Tránh đặt
%ở đầu mẫu (%abc) vì không thể sử dụng index. - Xem xét Full-Text Search cho tìm kiếm phức tạp trên dữ liệu lớn.
- Phân biệt chữ hoa/thường tùy collation (mặc định không phân biệt).