Cú pháp
SELECT * FROM bang WHERE cot LIKE 'tien_to%';
%: Khớp 0 hoặc nhiều ký tự bất kỳ_: Khớp đúng 1 ký tự bất kỳ
Ví dụ: Tìm tin nhắn bắt đầu bằng "Hi"
Dữ liệu
+--------+-----------------------------+ | UserId | UserMessage | +--------+-----------------------------+ | 1 | Hi Good Morning !!! | | 2 | Hey I am busy!! | | 3 | Hello what are you doing!!! | | 4 | Hi I am learning MongoDB!!! | +--------+-----------------------------+
Truy vấn
mysql> SELECT * FROM findStringWithGivenPrefixDemo WHERE UserMessage LIKE 'Hi%';
Kết quả (2 dòng)
+--------+-----------------------------+ | UserId | UserMessage | +--------+-----------------------------+ | 1 | Hi Good Morning !!! | | 4 | Hi I am learning MongoDB!!! | +--------+-----------------------------+
Các pattern LIKE thường dùng
| Pattern | Ý nghĩa | Ví dụ khớp |
|---|---|---|
| 'Hi%' | Bắt đầu bằng Hi | Hi, Hi there, Hi123 |
| '%Hi%' | Chứa Hi ở đâu đó | Hi, Say Hi, Hi5 |
| '%Hi' | Kết thúc bằng Hi | Hi, SayHi |
| 'H_i' | 3 ký tự, bắt đầu H, kết thúc i | Hi, Hoi, H1i |
| 'Hi\_%' | Bắt đầu bằng "Hi_" (dùng escape) | Hi_test, Hi_123 |
Hiệu năng & Index
LIKE 'prefix%': **Có thể dùng index** (range scan)LIKE '%suffix'hoặcLIKE '%middle%': **Không dùng index** (full scan)- MySQL 8.0+: Functional index cho
REVERSE(cot)giúp tìm suffix
Phân biệt chữ hoa/thường
- Mặc định: **Không phân biệt** (case-insensitive) với collation *_ci
- Phân biệt:
WHERE cot LIKE 'Hi%' COLLATE utf8mb4_binhoặcWHERE BINARY cot LIKE 'Hi%'
Mẹo: Fulltext search (MATCH AGAINST) tốt hơn cho tìm kiếm văn bản phức tạp.