Toán tử LIKE
trong SQLite
được sử dụng để so sánh một giá trị với một mẫu (pattern) bằng cách sử dụng ký tự đại diện (wildcards). Nếu biểu thức tìm kiếm khớp với biểu thức mẫu, toán tử LIKE
sẽ trả về true, là 1. Có hai ký tự đại diện (wildcards) được sử dụng cùng với toán tử LIKE
đó là:
- Dấu phần trăm (%)
- Dấu gạch dưới (_)
Dấu phần trăm (%) dùng để đại diện cho 0, 1 hoặc nhiều ký tự. Dấu gạch dưới (_) dùng để đại diện cho một ký tự đơn.
1. Cú pháp của toán tử Like trong SQLite
Sau đây là cú pháp cơ bản của dấu phần trăm (%) và dấu gạch dưới (_) kết hợp với toán tử LIKE
trong SQLite
.
SELECT FROM table_name WHERE column LIKE 'XXXX%' or SELECT FROM table_name WHERE column LIKE '%XXXX%' or SELECT FROM table_name WHERE column LIKE 'XXXX_' or SELECT FROM table_name WHERE column LIKE '_XXXX' or SELECT FROM table_name WHERE column LIKE '_XXXX_'
Bạn có thể kết hợp N số điều kiện bằng cách sử dụng toán tử AND
hoặc OR
(xem chi tiết tại bài toán tử AND và OR trong SQLite). Ở đây, XXXX
có thể là bất kỳ giá trị số hoặc chuỗi bất kỳ.
Bài viết này được đăng tại [kiso.vn]
2. Ví dụ của toán tử LIKE trong SQLite
Bảng sau sẽ liệt kê một số ví dụ cho thấy sự kết hợp giữa mệnh đề WHERE
, toán tử LIKE
và hai toán tử ‘%
‘ và ‘_
‘.
Câu lệnh | Mô tả |
WHERE SALARY LIKE ‘200%’ | Tìm bất kỳ giá trị nào bắt đầu bằng 200 |
WHERE SALARY LIKE ‘%200%’ | Tìm bất kỳ giá trị nào có 200 ở bất kỳ vị trí nào |
WHERE SALARY LIKE ‘_00%’ | Tìm bất kỳ giá trị nào có 00 ở vị trí thứ hai và thứ ba |
WHERE SALARY LIKE ‘2_%_%’ | Tìm bất kỳ giá trị nào bắt đầu bằng 2 và có ít nhất 3 ký tự |
WHERE SALARY LIKE ‘%2’ | Tìm bất kỳ giá trị nào kết thúc bằng 2 |
WHERE SALARY LIKE ‘_2%3’ | Tìm bất kỳ giá trị nào có 2 ở vị trí thứ hai và kết thúc bằng 3 |
WHERE SALARY LIKE ‘2___3’ | Tìm bất kỳ giá trị nào trong một số có năm chữ số bắt đầu bằng 2 và kết thúc bằng 3 |
Giả sử chúng ta có bảng COMPANY
với các bản ghi như sau:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 1 Paul 32 California 20000.0 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
Ví dụ sau đây sẽ hiển thị tất cả các bản ghi từ bảng COMPANY
có age
bắt đầu bằng 2.
sqlite> SELECT * FROM COMPANY WHERE AGE LIKE '2%';
Kết quả của ví dụ trên như sau:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 2 Allen 25 Texas 15000.0 3 Teddy 23 Norway 20000.0 4 Mark 25 Rich-Mond 65000.0 5 David 27 Texas 85000.0 6 Kim 22 South-Hall 45000.0 7 James 24 Houston 10000.0
Ví dụ sau đây sẽ hiển thị tất cả các bản ghi từ bảng COMPANY
trong đó giá trị của address
có dấu gạch nối (-) bên trong giá trị.
sqlite> SELECT * FROM COMPANY WHERE ADDRESS LIKE '%-%';
Sau đây là kết quả của ví dụ trên:
ID NAME AGE ADDRESS SALARY ---------- ---------- ---------- ---------- ---------- 4 Mark 25 Rich-Mond 65000.0 6 Kim 22 South-Hall 45000.0
Bài viết liên quan
[CSF-2] Một số thiết lập CSF, LFD
Hôm nay mình sẽ thực hiện một số thiết lập trên CSF Mở file config để sửa đổi một số tính năng dưới /etc/csf/csf.conf Nội dung chính1. Cú pháp của toán tử Like trong SQLite2. Ví...
[CSF-1] Tăng bảo mật Server với ConfigServer Firewall (CSF)
Nội dung chính1. Cú pháp của toán tử Like trong SQLite2. Ví dụ của toán tử LIKE trong SQLite1. Khái niệm CSF: CSF (ConfigServer & Firewall) là một bộ ứng dụng hoạt động trên Linux như một...
Sử dụng SSH Key với Gitlab và Github
Bài viết này mình sẽ hướng dẫn các bạn tạo ssh key cho Gitlab và Github SSH là gì? Secure Socket Shell là một giao thức mạng dùng để thiết lập kết nối mạng một...
Directory traversal vulnerabilities (phần 4)
Nội dung chính1. Cú pháp của toán tử Like trong SQLite2. Ví dụ của toán tử LIKE trong SQLiteV. Phân tích và khai thác các lỗ hổng Directory traversal (tiếp) 5. Bypass lỗ hổng khi trang web...
Directory traversal vulnerabilities (phần 3)
Nội dung chính1. Cú pháp của toán tử Like trong SQLite2. Ví dụ của toán tử LIKE trong SQLiteV. Phân tích và khai thác các lỗ hổng Directory traversal 1. Lỗ hổng xảy ra khi sử dụng...
Directory traversal vulnerabilities (phần 2)
Nội dung chính1. Cú pháp của toán tử Like trong SQLite2. Ví dụ của toán tử LIKE trong SQLiteIII. Vì sao lỗ hổng Directory traversal xuất hiện? Với mỗi ngôn ngữ lập trình khác nhau, điểm xuất...