TÌM KIẾM DỮ LIỆU SỬ DỤNG CÁC KÝ TỰ ĐẠI DIỆN (Wildcard)
Bài đăng này đã không được cập nhật trong 4 năm
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