All Products
Search
Document Center

AnalyticDB:Fungsi URL

Last Updated:Oct 10, 2026

AnalyticDB for MySQL menyediakan fungsi URL untuk mengurai, mengekstraksi, dan mengenkode string URL dalam kueri SQL.

Function Description
PARSE_URL Mengekstraksi komponen bernama dari URL.
URL_DECODE Mendekode string application/x-www-form-urlencoded.
URL_ENCODE Mengenkode string menggunakan format application/x-www-form-urlencoded.
URL_EXTRACT_FRAGMENT Mengekstraksi identifier fragmen dari URL.
URL_EXTRACT_HOST Mengekstraksi hostname atau alamat IP dari URL.
URL_EXTRACT_PARAMETER Mengekstraksi nilai parameter kueri bernama dari URL.
URL_EXTRACT_PATH Mengekstraksi path dari URL.
URL_EXTRACT_PORT Mengekstraksi nomor port dari URL.
URL_EXTRACT_PROTOCOL Mengekstraksi protokol dari URL.
URL_EXTRACT_QUERY Mengekstraksi string kueri dari URL.

PARSE_URL

PARSE_URL(url, part [, key]) → varchar

Mengekstraksi komponen yang ditentukan oleh part dari url. Semua parameter bertipe STRING, dan fungsi ini mengembalikan STRING.

Nilai part harus dalam huruf kapital. Nilai yang didukung:

part nilai Konten yang diekstraksi Contoh output
HOST Hostname atau alamat IP example.com
PATH Path, dimulai dari / /path/to/resource
QUERY String kueri, dimulai dari ? type=animal&name=narwhal
REF Identifier fragmen, dimulai dari # nose
PROTOCOL Protokol http, https, file
AUTHORITY Informasi pengguna, hostname, dan port username:password@example.com:8042
FILE Path file dari URL —
USERINFO Username dan password username:password

Jika part bernilai QUERY, berikan key untuk mengambil nilai parameter kueri tertentu.

Fungsi ini mengembalikan NULL jika url, part, atau key bernilai NULL, atau jika part bukan nilai yang valid.

Contoh

Semua contoh menggunakan URL yang sama: file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose

-- "k1" terdapat dalam string kueri
SELECT url_extract_parameter('http://example.com/path1/p.php?k1=v1&k2=v2&k3&k4#Ref1', 'k1');
-- v1

-- "k5" tidak terdapat dalam string kueri
SELECT url_extract_parameter('http://example.com/path1/p.php?k1=v1&k2=v2&k3&k4#Ref1', 'k5');
-- NULL

URL_DECODE

URL_DECODE(input) → varchar

Mendekode string yang dikodekan dalam format application/x-www-form-urlencoded. Fungsi ini merupakan kebalikan dari URL_ENCODE.

Mengembalikan NULL jika input bernilai NULL.

Aturan pendekodean

  • Karakter a–z, A–Z, dan 0–9 tidak berubah.

  • ., -, *, dan _ tidak berubah.

  • + diubah menjadi spasi.

  • Urutan persen-encoded (%xy) didekode menjadi nilai byte yang sesuai, lalu diinterpretasikan sebagai string UTF-8.

Contoh

SELECT url_decode('example+for+url_decode%3A%2F%2F+%28fdsf%29');
-- example for url_decode:// (fdsf)

URL_ENCODE

URL_ENCODE(input) → varchar

Mengenkode string menggunakan format application/x-www-form-urlencoded. Fungsi ini merupakan kebalikan dari URL_DECODE.

Mengembalikan NULL jika input bernilai NULL.

Aturan pengenkodean

  • Karakter a–z, A–Z, dan 0–9 tidak berubah.

  • ., -, *, dan _ tidak berubah.

  • Spasi diubah menjadi +.

  • Semua karakter lainnya dikodekan sebagai byte UTF-8 dalam format %xy, di mana xy adalah nilai heksadesimal byte tersebut.

Contoh

SELECT url_encode('example for url_encode:// (fdsf)');
-- example+for+url_encode%3A%2F%2F+%28fdsf%29

Fungsi ekstraksi URL

Fungsi-fungsi berikut mengekstraksi komponen individual dari URL. Fungsi ini menerima URL yang sesuai dengan struktur standar:

[protocol:][//host[:port]][path][?query][#fragment]

Nilai yang diekstraksi tidak mencakup pemisah sintaks URI seperti :, ?, atau #. Semua fungsi menerima argumen STRING dan mengembalikan STRING.

Semua fungsi mengembalikan NULL jika url bernilai NULL atau tidak valid.

URL_EXTRACT_FRAGMENT

URL_EXTRACT_FRAGMENT(url) → varchar

Mengekstraksi identifier fragmen (bagian setelah #) dari url. Mengembalikan string kosong jika url tidak mengandung identifier fragmen.

Contoh

SELECT url_extract_fragment('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');
-- Ref1

URL_EXTRACT_HOST

URL_EXTRACT_HOST(url) → varchar

Mengekstraksi hostname atau alamat IP dari url.

Contoh

SELECT url_extract_host('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');
-- example.com

URL_EXTRACT_PARAMETER

URL_EXTRACT_PARAMETER(url, parameter) → varchar

Mengekstraksi nilai parameter dari string kueri url. Mengembalikan NULL jika url bernilai NULL, parameter bernilai NULL, atau string kueri tidak mengandung parameter.

Contoh

-- "k1" ada dalam string kueri
SELECT url_extract_parameter('http://example.com/path1/p.php?k1=v1&k2=v2&k3&k4#Ref1', 'k1');
-- v1

-- "k5" tidak ada dalam string kueri
SELECT url_extract_parameter('http://example.com/path1/p.php?k1=v1&k2=v2&k3&k4#Ref1', 'k5');
-- NULL

URL_EXTRACT_PATH

URL_EXTRACT_PATH(url) → varchar

Mengekstraksi path dari url. Mengembalikan string kosong jika url tidak mengandung path.

Contoh

SELECT url_extract_path('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');
-- /path1/p.php

URL_EXTRACT_PORT

URL_EXTRACT_PORT(url) → varchar

Mengekstraksi nomor port dari url. Mengembalikan NULL jika url tidak mengandung port.

Contoh

-- Port tidak ditentukan
SELECT url_extract_port('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');
-- NULL

-- Port ditentukan
SELECT url_extract_port('http://example.com:8080/path1/p.php?k1=v1&k2=v2#Ref1');
-- 8080

URL_EXTRACT_PROTOCOL

URL_EXTRACT_PROTOCOL(url) → varchar

Mengekstraksi protokol dari url.

Contoh

SELECT url_extract_protocol('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');
-- http

URL_EXTRACT_QUERY

URL_EXTRACT_QUERY(url) → varchar

Mengekstraksi string kueri (bagian setelah ?, tidak termasuk ? itu sendiri) dari url. Mengembalikan string kosong jika url tidak mengandung string kueri.

Contoh

SELECT url_extract_query('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');
-- k1=v1&k2=v2