Ký Tự Đại Diện Wildcard Trong SQL

Trong Testing, việc sử dụng thành thạo các truy vấn SQL sẽ giúp bạn đẩy nhanh tốc độ test ở một số chức năng cần truy vấn, tìm kiếm dữ liệu. Các kí tự đại diện (Wildcard) hỗ trợ trong việc tìm kiếm dữ liệu thường được sử dụng là:

%: Dấu phần trăm biểu thị bằng không, một hoặc nhiều ký tự.

_: Dấu gạch dưới đại diện cho một ký tự đơn.

[charlist]: Xác định tập hợp và phạm vi ký tự để khớp.

[! charlist]: Xác định tập hợp và phạm vi ký tự KHÔNG khớp.

  • Các kí tự đại diện này được sử dụng kết hợp với toán tử LIKE.

  • Các kí tự "%" và "_" được sử dụng ở cả MySQL và SQL Server.

  • Các kí tự "[charlist]" hoặc "[! charlist]" chỉ được sử dụng ở SQL Server.

I. Kí tự "%"

1. Cú pháp và Mô tả

Cú pháp Toán Tử LIKE Mô Tả
1 WHERE column_name LIKE 'a%' Tìm giá trị bắt đầu với "a"
2 WHERE column_name LIKE '%a' Tìm giá trị kết thúc với "a"
3 WHERE column_name LIKE '%a%' Tìm giá trị có "a" ở bất kì vị trí
4 WHERE column_name LIKE 'a%o' Tìm giá trị bắt đầu với "a" và kết thúc với "o"

2. Ví dụ áp dụng

Bảng Cơ Sở Dữ Liệu

Cú pháp 1: Tìm tất cả các QA có qa_full_name bắt đầu bằng "T":

SELECT * FROM thuong.qa_member where qa_full_name LIKE 'T%';

Cú pháp 2: Tìm tất cả các QA có qa_full_name kết thúc bằng "Trinh":

SELECT * FROM thuong.qa_member where qa_full_name LIKE '%Trinh';

Cú pháp 3: Tìm tất cả các QA có qa_full_name chứa "Thị" ở vị trí bất kỳ:

SELECT * FROM thuong.qa_member WHERE qa_full_name LIKE '%Thị%';

Cú pháp 4: Tìm tất cả các QA có qa_full_name bắt đầu bằng "Nguyễn" và kết thúc bằng "h":

SELECT * FROM thuong.qa_member WHERE qa_full_name LIKE 'Nguyễn%h';

II. Kí tự "_"

1. Cú pháp và Mô tả

Cú pháp Toán Tử LIKE Mô Tả
1 WHERE column_name LIKE '_a%' Tìm bất kỳ giá trị có "a" ở vị trí thứ 2
2 WHERE column_name LIKE 'a%_%' Tìm giá trị bắt đầu với "a" và có ít nhất 3 kí tự
3 WHERE column_name LIKE '_a%o' Tìm giá trị "a" ở vị trí thứ 2 và kết thúc bằng "o"

2. Ví dụ áp dụng

Cú pháp 1: Tìm tất cả các QA có qa_short_name chứa "u" ở vị trí thứ 2 :

SELECT * FROM thuong.qa_member WHERE qa_short_name LIKE '_u%';

Cú pháp 2: Tìm tất cả các QA có qa_short_name bắt đầu với "T" và có ít nhất 3 ký tự :

SELECT * FROM thuong.qa_member WHERE qa_short_name LIKE 'T%_%';

Cú pháp 3: Tìm tất cả các QA có qa_short_name có "u" ở vị trí thứ 2 và kết thúc bằng "g":

SELECT * FROM thuong.qa_member WHERE qa_short_name LIKE '_u%g';

II. Kí tự "[charlist]"

Cú pháp: Tìm tất cả các QA có qa_short_name bắt đầu bằng "T", "L"

SELECT * FROM thuong.qa_member WHERE qa_short_name LIKE '[TL]%';

Kết quả sẽ là:

II. Kí tự "[! charlist]"

Cú pháp: Tìm tất cả các QA có qa_short_name KHÔNG bắt đầu bằng "T", "L"

SELECT * FROM thuong.qa_member WHERE qa_short_name LIKE '[!TL]%';

hoặc

SELECT * FROM thuong.qa_member WHERE qa_short_name NOT LIKE '[TL]%';

Kết quả sẽ là:

10 bình luận


Đăng bình luận