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

Tìm kiếm chuỗi trong cột cụ thể bằng MATCH và AGAINST trong MySQL

MySQL hỗ trợ tìm kiếm toàn văn bản (full-text search) thông qua MATCH() ... AGAINST(). Yêu cầu cột phải có chỉ mục FULLTEXT.

Ví dụ minh họa

Tạo bảng và thêm chỉ mục FULLTEXT:

mysql> CREATE TABLE DemoTable1833 (Name VARCHAR(20));
mysql> ALTER TABLE DemoTable1833 ADD FULLTEXT(Name);

Chèn dữ liệu:

mysql> INSERT INTO DemoTable1833 VALUES('John Doe'),('Adam Smith'),('Chris Brown'),('John Smith');

Tìm kiếm cụm từ "John Smith" (chế độ boolean với + bắt buộc có từ):

mysql> SELECT * FROM DemoTable1833 WHERE MATCH(Name) AGAINST('+John +Smith' IN BOOLEAN MODE);

Kết quả:

+------------+
| Name       |
+------------+
| John Smith |
| John Doe   |
| Adam Smith |
+------------+

Giải thích: Dấu + yêu cầu từ phải xuất hiện. Kết quả bao gồm các hàng chứa "John" HOẶC "Smith". Để khớp chính xác cụm từ, dùng AGAINST('"John Smith"' IN BOOLEAN MODE).