Tìm Kiếm Dữ Liệu Sử Dụng Các Ký Tự Đại Diện (Wildcard)

Tram Ho

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ápToán Tử LIKEMô Tả
1WHERE column_name LIKE ‘a%’Tìm giá trị bắt đầu với “a”
2WHERE column_name LIKE ‘%a’Tìm giá trị kết thúc với “a”
3WHERE column_name LIKE ‘%a%’Tìm giá trị có “a” ở bất kì vị trí
4WHERE 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”:

Cú pháp 2: Tìm tất cả các QA có qa_full_name kết thúc bằng “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ỳ:

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”:

II. Kí tự “_”

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

Cú phápToán Tử LIKEMô Tả
1WHERE column_name LIKE ‘_a%’Tìm bất kỳ giá trị có “a” ở vị trí thứ 2
2WHERE column_name LIKE ‘a%_%’Tìm giá trị bắt đầu với “a” và có ít nhất 3 kí tự
3WHERE 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 :

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ự :

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”:

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à:

Refer:
https://o7planning.org/vi/10239/huong-dan-hoc-sql-cho-nguoi-moi-bat-dau-voi-sql-server
https://www.codehub.vn/Hoc-SQL/Ky-Tu-Dai-Dien-Wildcard-trong-SQL
https://www.w3schools.com/sql/sql_wildcards.asp

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo