Lọc chuỗi bắt đầu bằng ký tự xác định với LIKE
Sử dụng mẫu 'X%' trong LIKE để chỉ khớp các chuỗi bắt đầu bằng ký tự 'X'. Kết hợp OR để khớp nhiều ký tự đầu khác nhau.
1. Tạo bảng và chèn dữ liệu
mysql> CREATE TABLE DemoTable (FirstName VARCHAR(40));
mysql> INSERT INTO DemoTable VALUES ('John'), ('Adam'), ('David'), ('Mike'), ('Sam');
2. Xem dữ liệu
mysql> SELECT * FROM DemoTable;
+-----------+ | FirstName | +-----------+ | John | | Adam | | David | | Mike | | Sam | +-----------+
3. Truy vấn: Lọc tên bắt đầu bằng 'D' HOẶC 'S'
mysql> SELECT * FROM DemoTable
WHERE FirstName LIKE 'D%' OR FirstName LIKE 'S%';
4. Kết quả
+-----------+ | FirstName | +-----------+ | David | | Sam | +-----------+
Giải thích mẫu LIKE:
'D%': Bắt đầu bằng 'D', theo sau 0 hoặc nhiều ký tự bất kỳ'S%': Bắt đầu bằng 'S'%: Khớp 0 hoặc nhiều ký tự (wildcard)_: Khớp đúng 1 ký tự (ví dụ:'D___'= 4 ký tự bắt đầu bằng D)
Cách thay thế với REGEXP:
WHERE FirstName REGEXP '^[DS]'
Tận dụng INDEX (quan trọng):
LIKE 'D%'(prefix) → CÓ thể dùng indexLIKE '%D'(suffix) → KHÔNG dùng index (full scan)LIKE '%D%'(contains) → KHÔNG dùng index
Case sensitivity: Mặc định case-insensitive (collation _ci). Dùng BINARY để case-sensitive: WHERE BINARY FirstName LIKE 'D%'.