Tới nội dung chính
Danh mục
Hệ quản trị SQL

Điều kiện LIKE trong SQL Server

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 SQL

“bieu-thuc” LIKE “mau” [ ESCAPE ‘Escape_Character’ ]

2. Tên biến hoặc giá trị biến

Biểu thức

Biểu thức ký tự

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ý tự 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

Tùy chọn. Bỏ qua ký tự, cho phép kiểm tra xem các ký tự đại diện như % hay _ có sử 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ý tự đạ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

WHER ten LIKE ‘%0%’;

Sử 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ề các kết quả hàng tồn kho có tên 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à những ký tự bạn muốn khớp

SELECT *

FROM hangtonkho_id

WHERE ma LIKE ‘AA[BC]22’;

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 sử dụng thêm ký tự ^. Kết quả trả về có thể 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 các nhân viên có tên không chứa những người bắt đầu bằng chữ C.

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 sử dụng ký tự đại diện mà đơn giản chỉ là như hằng số bình thường.

SELECT *

FROM nhanvien

WHERE secret_hint LIKE ‘222!%333’ ESCAPE ‘!’;

Lệnh này sẽ trả về các nhân viên có secret_hint là 222%333. Kí tự % không còn được sử dụng để chọn ký tự bắt đầu mà như một kí tự bình thường.

Phức tạp hơn ta có:

SELECT *

FROM nhanvien

WHERE secret_hint LIKE ‘S%!%’ ESCAPE ‘!’;

Như vậy là tôi đã giới thiệu cho bạn hiểu về điều kiện LIKE trong SQL Server. Hãy đón chờ thêm các bài viết sau nhé.

SAU ĐÓ LIỆT KÊ CÁC VÍ DỤ MINH HỌA CHI TIẾT NHƯ TRONG LINK ĐỐI THỦ

Thảo Larskanis

@Thảo Larskanis

Lĩnh vực công nghệ thông tin, đặc biệt là cấu trúc dữ liệu ngày càng quan trọng và trở nên cần thiết hơn với nhiều doanh nghiệp. Nhận thấy rõ được tầm quan trọng của SQL, Thảo Nguyễn - người đã có nhiều năm học tập và làm việc trong lĩnh vực công nghệ thông tin đã quyết định thành lập một website chia sẻ kiến thức cũng như kinh nghiệm của bản thân về lĩnh vực SQL đến cho những bạn có đam mê và muốn hiểu rõ hơn về lĩnh vực này.