Tìm kiếm từ khóa cơ bản với toán tử LIKE
Toán tử LIKE kết hợp ký tự đại diện % (khớp 0 hoặc nhiều ký tự) và _ (khớp đúng 1 ký tự) cho phép tìm kiếm mẫu chuỗi.
Cú pháp
SELECT * FROM tenBang
WHERE cot LIKE '%tuKhoa%'
OR cot LIKE '%tuKhoaKhac%';
Ví dụ minh họa
Tạo bảng KeywordSearchDemo:
CREATE TABLE KeywordSearchDemo (
StudentId INT,
StudentName VARCHAR(100)
);
Chèn dữ liệu:
INSERT INTO KeywordSearchDemo VALUES
(100, 'Adam John'), (101, 'John Smith'), (103, 'John Taylor'),
(104, 'Carol Taylor'), (105, 'Maria Garcia'), (106, 'James Smith'), (110, 'Mike Brown');
Tìm tên chứa "John" HOẶC "Taylor":
SELECT StudentName FROM KeywordSearchDemo
WHERE StudentName LIKE '%John%' OR StudentName LIKE '%Taylor%';
Kết quả
+--------------+
| StudentName |
+--------------+
| Adam John |
| John Smith |
| John Taylor |
| Carol Taylor |
+--------------+
Mở rộng: Tìm kiếm toàn văn bản (Full-Text Search)
Với dữ liệu lớn, LIKE '%...%' quét toàn bảng (chậm). MySQL hỗ trợ Full-Text Index:
ALTER TABLE tenBang ADD FULLTEXT(cotVanBan);
SELECT * FROM tenBang WHERE MATCH(cotVanBan) AGAINST('tu khoa' IN NATURAL LANGUAGE MODE);
Ưu điểm: Nhanh, hỗ trợ xếp hạng độ liên quan, tìm từ gốc (stemming), boolean mode (+ - *).
Lưu ý LIKE
%abc%: Không dùng index (full table scan).abc%: Có thể dùng index (prefix).- Phân biệt chữ hoa/thường phụ thuộc collation (mặc định không phân biệt).