Tham Chiếu Hàm
Sử dụng hàm bên trong lệnh eval để biến đổi giá trị trường.
Tham Chiếu Nhanh
| Hàm | Đối số | Trả về | Mô tả |
|---|---|---|---|
lower(string) | 1 (String) | String | Chuyển sang chữ thường |
upper(string) | 1 (String) | String | Chuyển sang chữ hoa |
len(string) | 1 (String) | Int | Lấy độ dài byte của chuỗi |
decode_url(string) | 1 (String) | String | Giải mã phần trăm URL encoding |
decode_hex(string) | 1 (String) | String | Giải mã hex sang UTF-8 |
base64_decode(string) | 1 (String) | String | Giải mã Base64 sang UTF-8 |
match(string, regex) | 2 (String, String) | Int | Phối hợp biểu thức chính quy (1=có, 0=không, NULL nếu lỗi) |
lower
Chuyển chuỗi sang chữ thường.
Cú pháp:
| eval result = lower(field)Đối số:
| Tên | Kiểu | Mô tả |
|---|---|---|
field | String | Giá trị cần chuyển đổi |
Kiểu trả về: String
Ví dụ:
| eval lowered = lower(status)Nếu status là "ERROR", kết quả là "error".
Trường hợp sử dụng: Chuẩn hóa giá trị trước khi so sánh hoặc nhóm.
upper
Chuyển chuỗi sang chữ hoa.
Cú pháp:
| eval result = upper(field)Đối số:
| Tên | Kiểu | Mô tả |
|---|---|---|
field | String | Giá trị cần chuyển đổi |
Kiểu trả về: String
Ví dụ:
| eval upper_host = upper(host)Nếu host là "web-01", kết quả là "WEB-01".
Trường hợp sử dụng: Chuẩn hóa giá trị để hiển thị đồng nhất.
len
Trả về độ dài byte của chuỗi.
Cú pháp:
| eval length = len(field)Đối số:
| Tên | Kiểu | Mô tả |
|---|---|---|
field | String | Chuỗi cần đo |
Kiểu trả về: Int
Ví dụ:
| eval name_len = len(user)Nếu user là "alice", kết quả là 5.
Trả NULL nếu đầu vào là NULL.
Trường hợp sử dụng: Lọc hoặc sắp xếp theo độ dài chuỗi, phát hiện trường trống.
decode_url
Giải mã chuỗi URL encoding bằng phần trăm.
Cú pháp:
| eval decoded = decode_url(field)Đối số:
| Tên | Kiểu | Mô tả |
|---|---|---|
field | String | Chuỗi URL encoding |
Kiểu trả về: String
Ví dụ:
| eval url = decode_url(query_name)Nếu query_name là "hello%20world", kết quả là "hello world".
Trả NULL nếu đầu vào là NULL.
Trường hợp sử dụng: Giải mã tham số truy vấn, đường dẫn hoặc tên miền URL encoding.
decode_hex
Giải mã chuỗi hex encoding sang UTF-8.
Cú pháp:
| eval decoded = decode_hex(field)Đối số:
| Tên | Kiểu | Mô tả |
|---|---|---|
field | String | Chuỗi hex encoding |
Kiểu trả về: String
Ví dụ:
| eval decoded = decode_hex(cmdline)Nếu cmdline là "48656c6c6f", kết quả là "Hello".
Trả NULL nếu đầu vào là NULL hoặc chứa ký tự hex không hợp lệ.
Trường hợp sử dụng: Giải mã lệnh bị che giấu, payload hex encoding hoặc trường log đã mã hóa.
base64_decode
Giải mã chuỗi Base64 encoding sang UTF-8.
Cú pháp:
| eval decoded = base64_decode(field)Đối số:
| Tên | Kiểu | Mô tả |
|---|---|---|
field | String | Chuỗi Base64 encoding |
Kiểu trả về: String
Ví dụ:
| eval decoded = base64_decode(payload)Nếu payload là "SGVsbG8=", kết quả là "Hello".
Trả NULL nếu đầu vào là NULL hoặc chứa Base64 không hợp lệ.
Trường hợp sử dụng: Giải mã tiêu đề email Base64 encoding, token API hoặc payload đã mã hóa.
match
Kiểm tra xem chuỗi có khớp với biểu thức chính quy (regular expression) hay không.
Cú pháp:
| eval result = match(field, "regex_pattern")Đối số:
| Tên | Kiểu | Mô tả |
|---|---|---|
field | String | Giá trị cần kiểm tra |
pattern | String | Biểu thức chính quy (cú pháp Rust regex) |
Kiểu trả về: Int
Trả về:
1nếu chuỗi khớp với mẫu0nếu không khớpNULLnếu một trong hai đầu vào là NULL hoặc regex không hợp lệ
Ví dụ:
| eval is_ip = match(src_ip, "^[0-9]+\\.[0-9]+\\.[0-9]+\\.[0-9]+$")Nếu src_ip là "10.0.0.1", kết quả là 1.
| eval has_error = match(message, "error|fail|timeout")Nếu message là "connection timeout", kết quả là 1.
Trường hợp sử dụng: Trích xuất hoặc gắn cờ các giá trị khớp mẫu, kiểm tra định dạng trường, lọc bằng regex trong eval.
Chủ Đề Liên Quan
- Bắt Đầu — Mới làm quen với BQL? Bắt đầu từ đây
- Tham Chiếu Lệnh — Cú pháp đầy đủ của các lệnh
- Sổ Tay Mẫu — Các truy vấn sẵn sàng sử dụng
- Hạn Chế Đã Biết — Những gì BQL chưa thể làm
