Toán tử LIKE SQL

Từ khóa LIKE rất hữu ích dùng trong mệnh đề WHERE để tạo ra biểu thức điều kiện tìm kiểm.

Cú pháp cơ bản như sau:

SELECT column_name(s)
FROM table_name
WHERE column_name LIKE pattern
Chạy thử

Với pattern là mẫu tìm kiếm, các dòng có dữ liệu cột column_name phù hợp với mẫu trả về TRUE.

Mẫu patter dùng các ký hiệu _ đại diện ký tự, ký hiệu % để đại diện cho không có, có một hay nhiều ký tự.

Để rõ hơn xem một số trường hợp sau:

LIKE Operator Diễn tả
WHERE CustomerName LIKE 'a%' Tất các các giá trị bắt đầu bằng ký tự "a"
WHERE CustomerName LIKE '%a' Tất cả giá trị kết thúc bằng ký tự "a"
WHERE CustomerName LIKE '%or%' Bất kỳ giá trị nào có chứa "or" bên trong
WHERE CustomerName LIKE '_r%' Các giá trị có chứa "r" ở vị trí thứ 2
WHERE CustomerName LIKE 'a_%_%' Giá trị bắt đầu bằng "a" và có chiều dài tối thiểu 3
WHERE ContactName LIKE 'a%o' Giá trị bắt dầu bằng "a" và kết thúc bằng "o"

Ví dụ 1 (LIKE)

Tìm tên bắt đầu bằng ký tự a trong danh sách khách hàng ở bảng Customers

SELECT * FROM Customers
WHERE CustomerName LIKE 'a%';

Kết quả

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK

Ở đây có một file CSDL mẫu dạng SQLite, bạn có thể tải về nghiên cứu, thực hành: CSDL SQLite mẫu. Hoặc sử dụng trực tiếp công cụ Online: Chạy SQL

Ví dụ 2 (LIKE)

Tìm các khách hàng mà tên không có chứa or ở bảng Customers

SELECT * FROM Customers
WHERE CustomerName NOT LIKE '%or%'
Chạy thử

Chú ý có sử dụng thêm toán tử phủ định NOT

Kết quả

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden
6 Blauer See Delikatessen Hanna Moos Forsterstr. 57 Mannheim 68306 Germany
7 Blondel père et fils Frédérique Citeaux 24, place Kléber Strasbourg 67000 France
Đăng ký theo dõi ủng hộ kênh