Sử dụng LIKE trong SQL giúp bạn dùng các ký hiệu đại diện (wildcard) trong các mệnh đề WHERE ở các lệnh như INSERT, SELECT DELETE, UPDATE.
1. Cú pháp điều kiện LIKE trong cấu trúc SQL server
“bieu-thuc” LIKE “mau” [ ESCAPE ‘Escape_Character’ ]
2. Tên biến, giá trị biến và toán tử
Bắt đầu bằng các biểu thức, biểu thức ký hiệu, mẫu, biểu thức kí tự đối chiếu mẫu. Các mẫu có thể chọn từ bảng dưới đây.
Kí hiệu đại diện | Ý nghĩa |
% | tìm chuỗi ký tự với độ dài bất kỳ nào (gồm cả độ dài = 0) |
_ | tìm một ký tự |
[^] | tìm bất kỳ ký hiệu nào mà không chứa trong dấu [^] (ví dụ [^xyz] sẽ tìm bất kì kí tự nào không phải là x, y hoặc z) |
Escape Character. Bạn có thể tùy chọn bỏ qua ký hiệu, cho phép kiểm tra xem các ký hiệu đại diện như % hay _ có thể dùng dưới dạng hằng số, chứ không được dùng như một kí tự đặc biệt.
Ví dụ – sử dụng ký hiệu đại diện %
SELECT *
FROM hangtonkho
WHERE ho LIKE ‘C%’;
Hàm này sẽ tìm ra các hàng tồn kho có tên bắt đầu bằng chữ C
SELECT *
FROM hangtonkho
WHERE ten LIKE ‘%0%’;
Dùng %O% để tìm ra hàng tồn kho có tên chứa chữ O trong bảng hangtonkho.
Ví dụ – sử dụng ký tự đại diện _
Ký tự _ chỉ tìm được 1 ký tự (độ dài bằng 1)
SELECT *
FROM hangtonkho
WHERE ten LIKE ‘K_o’;
Ví dụ hàm này sẽ trả về tất cả các kết quả hàng tồn kho có giá trị như: Kẹo, Kéo trong bảng hangtonkho.
Ví dụ – dùng ký tự đại diện []
Những gì được liệt kê trong [] là tất cả những ký hiệu có giá trị mà bạn muốn khớp
SELECT *
FROM hangtonkho_id
WHERE ma LIKE ‘AA[BC]22’;
Hàm này cho chúng ta kết quả trả về mã trong bảng hantonkho_id là AAB22 hoặc AAC22. Nghĩa là 2 ký hiệu trong [] sẽ hoặc là B hoặc là C.
Ví dụ – dùng ký tự đại diện [^]
SELECT *
FROM hangtonkho_id
WHERE ma LIKE ‘AA[^BC]22’;
Những gì được liệt kê trong [] sẽ không được chứa B hoặc C khi được dùng thêm ký hiệu ^. Kết quả trả về có giá trị là AAD22 hoặc AAE22.
Ví dụ – sử dụng toán tử NOT
SELECT *
FROM nhanvien
WHERE ten NOT LIKE ‘C%’;
Hàm này sử dụng thêm toán tử NOT nghĩa là trong bảng nhân viên hãy liệt kê ra tất cả nhân viên có giá trị không chứa những người bắt đầu bằng chữ C. Dạng toán tử này nhằm xây dựng các điều kiện giá trị của mệnh đề WHERE trong SQL
Ví dụ – dùng kí tự bỏ qua Escape Character
Sử dụng Escape Character để tránh hàm hiểu rằng chúng ta dùng ký hiệu đại diện mà đơn giản chỉ là như hằng số giá trị bình thường.
SELECT *
FROM nhanvien
WHERE secret_hint LIKE ‘222!%333’ ESCAPE ‘!’;
Lệnh này sẽ trả về tất cả các nhân viên có secret_hint giá trị là 222%333. Kí tự % không còn được dùng để chọn ký hiệu bắt đầu mà như một kí tự giá trị bình thường. Phức tạp hơn ta có:
SELECT *
FROM nhanvien
WHERE secret_hint LIKE ‘S%!%’ ESCAPE ‘!’;
Kết quả trả về của hàm là các nhân viên có secret_hint bắt đầu bằng “S” và kết thúc bằng “%”, ví dụ như “Send%”.
SAU ĐÓ LIỆT KÊ CÁC VÍ DỤ MINH HỌA CHI TIẾT NHƯ TRONG LINK ĐỐI THỦ.
Như vậy là tôi đã kết thúc giới thiệu cho bạn hiểu về điều kiện LIKE của SQL Server. Bài viết của tôi kết thúc tại đây, hy vọng rằng với những thông tin bổ ích và miễn phí trong bài viết nên trên có thể giúp các bạn cải thiện được nhiều khó khăn trong việc xử lý vấn đề về các biến cũng như lệnh LIKE trong hệ dữ liệu có cấu trúc SQL. Các bạn có thể đón chờ thêm các bài viết giá trị sau nhé.