Điều kiện LIKE trong SQL Server

3115 lượt xem
Cú pháp onion trong sql

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’;

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 ‘!’;

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é.