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

Tìm kiếm khớp một phần (partial match) trong MySQL với LIKE

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'
%abcChuỗi kết thúc bằng 'abc'
_abcChuỗi 4 ký tự, 3 ký tự cuối là 'abc'
a_cChuỗ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).