Mệnh đề LIKE trong SQL được dùng để so sánh một giá trị với các giá trị tương tự bằng cách sử dụng các toán tử đại diện (wildcard). Có hai ký tự đại diện được sử dụng kết hợp với LIKE:
- Phần trăm (%)
- Dấu gạch dưới (_)
Dấu phần trăm thể đại diện cho chuỗi kí tự với bất kì độ dài nào (bao gồm cả độ dài 0). Dấu gạch dưới đại diện cho một số hoặc một ký tự. Những ký hiệu này có thể được sử dụng kết hợp.
Cú pháp lệnh LIKE trong SQL
Cú pháp cơ bản của lệnh LIKE với ‘%’ và ‘_’ là như sau:
SELECT FROM ten_bang
WHERE cot LIKE ‘XXXX%’
or
SELECT FROM ten_bang
WHERE cot LIKE ‘%XXXX%’
or
SELECT FROM ten_bang
WHERE cot LIKE ‘XXXX_’
or
SELECT FROM ten_bang
WHERE cot LIKE ‘_XXXX’
or
SELECT FROM ten_bang
WHERE cot LIKE ‘_XXXX_’
Bạn có thể kết hợp N điều kiện bằng cách sử dụng các toán tử AND hoặc OR. Ở đây, XXXX có thể là bất kỳ giá trị số hay chuỗi nào.
Ví dụ về LIKE trong SQL
Bảng dưới đây có một vài ví dụ cho thấy mệnh đề WHERE có mệnh đề LIKE với toán tử ‘%’ và ‘_’ khác nhau:
STT Câu lệnh và mô tả
1 WHERE SALARY LIKE ‘200%’
Tìm tất cả các giá trị bắt đầu bằng 200.
2 WHERE SALARY LIKE ‘%200%’
Tìm tất cả các giá trị có 200 vị trí bất kỳ.
3 WHERE SALARY LIKE ‘_00%’
Tìm tất cả các giá trị có 00 ở vị trí thứ hai và thứ ba.
4 WHERE SALARY LIKE ‘2_%_%’
Tìm tất cả các giá trị bắt đầu bằng 2 và có ít nhất 3 ký tự.
5 WHERE SALARY LIKE ‘%2’
Tìm tất cả các giá trị kết thúc bằng 2.
6 WHERE SALARY LIKE ‘_2%3’
Tìm tất cả các giá trị có vị trí 2 ở vị trí thứ hai và kết thúc bằng 3.
7 WHERE SALARY LIKE ‘2___3’
Tìm tất cả các giá trị trong số năm chữ số bắt đầu bằng 2 và kết thúc bằng 3.
Escape Character
Tùy chọn. Tạm dịch là kí tự bỏ qua, cho phép kiểm tra xem kí tự đại diện như % hay _ có được dùng theo đúng nghĩa đen (dưới dạng hằng số), chứ không được dùng như một kí tự đặc biệt.
Ví dụ – dùng kí tự đại diện %
Dùng kí tự đại diện % trong điều kiện LIKE của SQL Server bằng ví dụ tìm những nhân viên có họ bắt đầu bằng chữ cái “B”
SELECT *
FROM nhanvien
WHERE ho LIKE ‘B%’;
Có thể dùng nhiều lần kí tự % trong cùng 1 chuỗi như ví dụ dưới đây.
SELECT *
FROM nhanvien
WHER ho LIKE ‘%0%’;
Kết quả cho về các nhân viên mà trong họ có chứa chữ cái ‘o’.
Ví dụ – dùng kí tự đại diện _
Lưu ý là kí tự _ chỉ dùng để tìm kiếm 1 kí tự (độ dài bằng 1).
SELECT *
FROM nhanvien
WHERE ho LIKE ‘Ad_m’;
Trong ví dụ này, kết quả trả về là các nhân viên có tên gồm 4 chữ cái, trong đó 2 chữ cái đầu là “Ad” và chữ cái cuối là “m”. Ví dụ như Adam, Adem, Adim, Adom…
Đây là một ví dụ khác
- SELECT *
- FROM nhanvien
- WHERE so_nhanvien LIKE ‘123_’;
Bạn đang tìm số nhân viên mà chỉ có 3 trong 4 chữ số. Ở ví dụ trên, kết quả trả về gồm 10 bản ghi, các giá trị thiếu nằm từ 0 tới 9: 1230, 1231, 1232…
Ví dụ – dùng kí tự đại diện []
Lưu ý là những gì nằm trong dấu ngoặc vuông là các kí tự mà bạn đang muốn và khớp với mẫu
SELECT *
FROM nhanvien
WHERE ten LIKE ‘Sm[iy]th’;
Kết quả trả về trong ví dụ này là các nhân viên mà tên có 5 chữ cái, trong đó 2 chữ cái đầu là “Sm” và 2 chữ cái cuối là “th”, chữ cái ở giữa có thể là “i” hoặc “y”. Vậy kết quả có thể là Smith hoặc Smyth.
Ví dụ – dùng kí tự đại diện [^]
Những gì nằm trong dấu ngoặc vuông là những kí tự bạn không muốn khớp với mẫu.
SELECT *
FROM nhanvien
WHERE ten LIKE ‘Smy[^iy]th’;
Kết quả là tên nhân viên có 5 chữ cái, trong đó 2 chữ đầu là “Sm”, 2 chữ cuối là “th” và chữ ở giữa không phải “i” cũng không phải “y”. Kết quả có thể là Smath, Smeth…
Ví dụ – dùng toán tử NOT
Đây là cách dùng toán tử NOT trong SQL Server với các kí tự đại diện. Bạn có thể tìm họ nhân viên không bắt đầu bằng chữ cái “B” bằng điều kiện LIKE.
SELECT *
FROM nhanvien
WHERE ho NOT LIKE ‘B%’;
Bằng cách đặt toán tử NOT trước điều kiện LIKE, bạn tìm được họ nhân viên không bắt đầu bằng “B”.
Ví dụ – dùng kí tự bỏ qua Escape Character
Việc dùng kí tự bỏ qua rất quan trọng khi đối chiếu mẫu, để tránh việc hiểu nhầm các kí tự đặc biệt khi ta muốn dùng nó như một giá trị hằng.
Ví dụ như bạn muốn tìm các kí tự a% hay a_ chẳng hạn.
Lưu ý là chỉ có thể định nghĩa kí tự bỏ qua bằng 1 kí tự (độ dài bằng 1).
SELECT *
FROM nhanvien
WHERE secret_hint LIKE ‘123!%455’ ESCAPE ‘!’;
Lệnh này sẽ trả về các nhân viên có secret_hint là 123%455. Kí tự % không còn được dùng với ý nghĩa trước đó mà như một kí tự bình thường.
Đây là 1 ví dụ phức tạp hơn.
SELECT *
FROM nhanvien
WHERE secret_hint LIKE ‘H%!%’ ESCAPE ‘!’;
Kết quả trả về của điều kiện LIKE là các nhân viên có secret_hint bắt đầu bằng “H” và kết thúc bằng “%”, ví dụ như “Help%”.
Có thể dùng kí tự bỏ qua với cả kí tự _ trong điều kiện LIKE.
SELECT *
FROM nhanvien
WHERE secret_hint LIKE ‘H%!_’ ESCAPE ‘!’;
Ví dụ này trả về các nhân viên có secret_hint bắt đầu bằng “H” và kết thúc bằng “_”, ví dụ như “Help_”.
Các tiện ích nổi bật của dịch vụ Thiết Kế Web Bán Hàng trọn gói tại ATPWeb:
- Website bán hàng ATPWeb giúp tối ưu hiệu quả SEO: Giúp bạn có một Website chuẩn SEO, khách hàng có thể tìm bạn trên Google một cách dễ dàng nhất.
- 500+ giao diện Responsive đẹp mắt, tùy biến cao: Giúp bạn có một Website thân thiện, dù là bất cứ thiết bị nào Website sẽ cho họ một trải nghiệm mua hàng hấp dẫn.
- Website tốc độ cao và băng thông không giới hạn: Giúp bạn có một Website tốc độ cao, khách hàng của bạn sẽ được trải nghiệm tốc độ load của một trang báo.
- Dịch vụ cài đặt dễ dàng và nhanh chóng.
- Tiết kiệm chi phí: Khi sử dụng dịch vụ thiết kế web trọn gói của ATPWeb bạn sẽ nhận được nhiều ưu đãi như:Kho bài viết, tài liệu, cẩm nang và khóa học miễn phí, khuyến mãi tùy theo từng gói dịch vụ, miễn phí các dịch vụ phát sinh và nhiều lợi ích khác.
- An toàn, bảo mật tuyệt đối: Website của bạn sẽ được được bảo vệ tuyệt đối với hàng rào “https://” và “SSL” tiêu chuẩn quốc tế giúp tránh được sự tấn công của virus, hacker.
- Hỗ trợ tư vấn Marketing & bán hàng: Cung cấp cho Khách hàng những tư duy, kiến thức về Marketing và cách kinh doanh ngay trên Website.
Hy vọng rằng bài viết trên đã giúp các bạn biết thêm nhiều kiến thức hữu ích.
Nếu như bạn đang có nhu cầu xây dựng một Website phù hợp với thương hiệu của mình, nhưng vẫn chưa tìm được giải pháp tối ưu nhất thì hãy liên hệ ngay với chúng tôi trong hôm nay để được tư vấn miễn phí nhé!
THÔNG TIN LIÊN HỆ
- Website: https://phanmematp.vn/
- Youtube: ATP Software
- Group hỗ trợ: ATP Support – Tư Vấn và Hỗ Trợ khách hàng
- Fanpage: ATP Holdings – Giải pháp hỗ trợ doanh nghiệp