Cú pháp tìm kiếm chuỗi con
Sử dụng toán tử LIKE kết hợp với ký tự đại diện % để tìm các hàng chứa chuỗi cụ thể:
SELECT * FROM ten_bang WHERE ten_cot LIKE '%chuoi_tim_kiem%';
Ví dụ chi tiết
1. Tạo bảng mẫu
mysql> CREATE TABLE PatternDemo ( -> Id INT, -> Name VARCHAR(100), -> Age INT -> ); Query OK, 0 rows affected (0.97 sec)
2. Chèn dữ liệu
mysql> INSERT INTO PatternDemo VALUES(1,'James',23); Query OK, 1 row affected (0.11 sec) mysql> INSERT INTO PatternDemo VALUES(2,'Joseph',21); Query OK, 1 row affected (0.18 sec) mysql> INSERT INTO PatternDemo VALUES(3,'Robert',20); Query OK, 1 row affected (0.11 sec) mysql> INSERT INTO PatternDemo VALUES(4,'John',26); Query OK, 1 row affected (0.10 sec) mysql> INSERT INTO PatternDemo VALUES(5,'Richard',24); Query OK, 1 row affected (0.17 sec)
3. Xem toàn bộ dữ liệu
mysql> SELECT * FROM PatternDemo;
+------+---------+------+ | Id | Name | Age | +------+---------+------+ | 1 | James | 23 | | 2 | Joseph | 21 | | 3 | Robert | 20 | | 4 | John | 26 | | 5 | Richard | 24 | +------+---------+------+ 5 rows in set (0.00 sec)
4. Tìm tên chứa "Jo"
mysql> SELECT * FROM PatternDemo WHERE Name LIKE '%Jo%';
+------+--------+------+ | Id | Name | Age | +------+--------+------+ | 2 | Joseph | 21 | | 4 | John | 26 | +------+--------+------+ 2 rows in set (0.00 sec)
Giải thích ký tự đại diện
%: Khớp với 0 hoặc nhiều ký tự bất kỳ_: Khớp với đúng 1 ký tự đơn%Jo%: Tìm chuỗi "Jo" ở bất kỳ vị trí nàoJo%: Tìm chuỗi bắt đầu bằng "Jo"%Jo: Tìm chuỗi kết thúc bằng "Jo"
Lưu ý hiệu năng
Tránh dùng %...% (bắt đầu bằng %) trên bảng lớn vì không thể sử dụng index. Cân nhắc Full-Text Search cho tìm kiếm phức tạp.