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

Cách tìm kiếm chuỗi con trong cột MySQL với LIKE


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ào
  • Jo%: 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.