+4

TÌM KIẾM DỮ LIỆU SỬ DỤNG CÁC KÝ TỰ ĐẠI DIỆN (Wildcard)

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

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


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí