Liên hệ
Ủng hộ, đăng ký theo dõi kênh

Toán tử LIKE trong SQL

Sử dụng toán tử LIKE trong SQL để tạo ra biểu thức tìm kiếm theo một mẫu (pattern) của mệnh đề WHERE

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

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

Bạn có thể thực hành các câu lệnh SQL ví dụ trên CSDL mẫu SQLite có sẵn tại SQLite và thực hành lệnh 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ú ý 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

Vui lòng đăng ký ủng hộ kênh