Tóm tắt :trong hướng dẫn này, bạn sẽ học cách sử dụng SQLite GLOB
toán tử để xác định xem một chuỗi có khớp với một mẫu cụ thể hay không.
Giới thiệu về SQLite GLOB
toán tử
GLOB
toán tử tương tự với LIKE
nhà điều hành. GLOB
toán tử xác định xem một chuỗi có khớp với một mẫu cụ thể hay không.
Không giống như LIKE
toán tử, GLOB
toán tử phân biệt chữ hoa chữ thường và sử dụng các ký tự đại diện UNIX. Ngoài ra, GLOB
các mẫu không có ký tự thoát.
Phần sau hiển thị các ký tự đại diện được sử dụng với GLOB
nhà điều hành:
- Ký tự đại diện dấu hoa thị (*) khớp với bất kỳ số ký tự nào.
- Ký tự đại diện dấu chấm hỏi (?) khớp đúng một ký tự.
Trên đầu các ký tự đại diện này, bạn có thể sử dụng ký tự đại diện danh sách [] để khớp một ký tự từ danh sách các ký tự. Ví dụ:[xyz]
khớp với bất kỳ ký tự x, y hoặc z đơn lẻ nào.
Ký tự đại diện danh sách cũng cho phép một loạt các ký tự, ví dụ, [a-z] khớp với bất kỳ ký tự viết thường đơn lẻ nào từ a đến z. [a-zA-Z0-9]
mẫu khớp với bất kỳ ký tự chữ và số nào, cả chữ thường và chữ hoa.
Ngoài ra, bạn có thể sử dụng ký tự ^
ở đầu danh sách để khớp với bất kỳ ký tự nào ngoại trừ bất kỳ ký tự nào trong danh sách. Ví dụ:[^0-9]
mẫu khớp với bất kỳ ký tự đơn nào ngoại trừ ký tự số.
SQLite GLOB
ví dụ
Câu lệnh sau tìm các bản nhạc có tên bắt đầu bằng chuỗi Man
. Mẫu Man*
khớp với bất kỳ chuỗi nào bắt đầu bằng Man
.
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB 'Man*';
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Câu lệnh sau lấy các bản nhạc có tên kết thúc bằng Man
. Mẫu *Man
khớp với bất kỳ chuỗi nào kết thúc bằng Man
.
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*Man';
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Truy vấn sau đây tìm các bản nhạc có tên bắt đầu bằng bất kỳ ký tự đơn nào (?), Theo sau là chuỗi ere
và sau đó là bất kỳ số ký tự nào (*).
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '?ere*';
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Để tìm các bản nhạc có tên chứa số, bạn có thể sử dụng ký tự đại diện danh sách [0-9]
như sau:
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*[1-9]*';
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Hoặc để tìm các bản nhạc có tên không chứa số nào, bạn đặt ký tự ^
ở đầu danh sách:
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*[^1-9]*';
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Câu lệnh sau đây tìm các bản nhạc có tên kết thúc bằng một số.
SELECT
trackid,
name
FROM
tracks
WHERE
name GLOB '*[1-9]';
Code language: SQL (Structured Query Language) (sql)
Hãy thử nó
Trong hướng dẫn này, bạn đã học cách sử dụng SQLite GLOB
toán tử để kiểm tra xem một chuỗi có khớp với một mẫu cụ thể hay không.