Ký tự % là ký tự đại diện (wildcard) trong LIKE – khớp với **bất kỳ chuỗi nào** (kể cả rỗng). Để tìm chính xác ký tự % trong dữ liệu, phải **escape** nó bằng dấu gạch chéo ngược \.
Cú pháp
SELECT * FROM ten_bang WHERE ten_cot LIKE '\%%';
Trong chuỗi literal MySQL, \\% diễn giải thành \% (ký tự % thực), và % cuối là wildcard "bất kỳ ký tự nào sau đó".
Ví dụ minh họa
Tạo bảng tên có chứa %:
mysql> CREATE TABLE DemoTable1497 (Name VARCHAR(20));
mysql> INSERT INTO DemoTable1497 VALUES
-> ('%JohnSmith'), ('DavidMiller'), ('CarolTaylor%'), ('%DavidMiller');
Tìm các hàng **bắt đầu bằng %** (ký tự % thực, không phải wildcard):
mysql> SELECT * FROM DemoTable1497 WHERE Name LIKE '\%%';
Kết quả:
+--------------+ | Name | +--------------+ | %JohnSmith | | %DavidMiller | +--------------+
Các trường hợp escape khác
| Muốn tìm | Pattern LIKE | Giải thích |
|---|---|---|
| Ký tự % | LIKE '\%' hoặc LIKE '\%%' | Escape % |
| Ký tự _ (gạch dưới) | LIKE '\_' | _ khớp 1 ký tự bất kỳ |
| Ký tự \ (backslash) | LIKE '\\\\' | Escape backslash |
| Tùy chọn ký tự escape | LIKE '%\%%' ESCAPE '\' | Mặc định là \ |
Lưu ý
- Nếu dùng
NO_BACKSLASH_ESCAPESSQL mode, escape bằng ký tự gấp đôi:LIKE '%%'(hai % liên tiếp) hoặc dùngESCAPE '|'tự định nghĩa. - Hàm
REPLACE(),LOCATE()không dùng wildcard – tìm chuỗi gốc, không cần escape.