本文介紹URL函數的基本文法和樣本。
PARSE_URL:返回URL中的指定內容。
URL_DECODE:解碼
application/x-www-form-urlencoded編碼的字串並返回結果。URL_ENCODE:返回字串的
application/x-www-form-urlencoded編碼形式。URL_EXTRACT_FRAGMENT:返回URL中的片段標識符。
URL_EXTRACT_HOST:返回URL中的主機名稱或IP地址。
URL_EXTRACT_PARAMETER:返回URL查詢部分中的指定參數值。
URL_EXTRACT_PATH:返回URL中的路徑資訊。
URL_EXTRACT_PORT:返回URL中的連接埠資訊。
URL_EXTRACT_PROTOCOL:返回URL中的協議資訊。
URL_EXTRACT_QUERY:返回URL中的查詢部分資訊。
PARSE_URL
PARSE_URL(url, part [,key] )命令說明:返回
url中part所指定的內容。規則如下:
當
part取值為QUERY時,返回key所對應value的值。當
url、part或key值為NULL時,返回NULL。當
part取值不符合要求時,返回NULL。
part取值不區分大寫,取值如下:
HOST:URL的主機名稱或IP地址。
PATH:URL的路徑。例如
/path/to/resource。QUERY:URL的查詢字串,即以
?開頭的內容。REF:URL的片段標識符,即以
#開頭的內容。PROTOCOL:URL的協議。例如
http、https。AUTHORITY:URL的使用者資訊、主機名稱及連接埠。
FILE:URL的檔案路徑。
USERINFO:URL的使用者資訊,包括使用者名稱和密碼。
輸入實值型別:
url、part和key均為STRING類型。傳回值類型:STRING。
樣本:
返回
url中的主機名稱或IP地址。語句如下:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'HOST');返回結果如下:
example.com返回
url中的路徑。語句如下:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'PATH');返回結果如下:
/over/there/index.dtb返回
url中的查詢字串。語句如下:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'QUERY', 'type');返回結果如下:
animal返回
url中的片段標識符。語句如下:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'REF');返回結果如下:
nose返回
url的協議。語句如下:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'PROTOCOL');返回結果如下:
file返回
url的使用者資訊、主機名稱及連接埠。語句如下:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'AUTHORITY');返回結果如下:
username:password@example.com:8042返回
url的使用者資訊。語句如下:SELECT parse_url('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'USERINFO');返回結果如下:
username:password
URL_DECODE
URL_DECODE(input)命令說明:解碼
application/x-www-form-urlencoded編碼的字串並返回結果。規則說明:當
input值為NULL時,返回NULL。編碼規則如下:
a~z、A~Z、0-9字元保持不變。
英文句號(.)、短劃線(-)、星號(*)和底線(_)保持不變。
加號(+)轉換為空白格。
%xy的序列轉為對應的位元組值,連續的位元組值根據UTF-8格式解碼為對應的字串。
輸入實值型別:STRING。
傳回值類型:STRING。
樣本:
解碼
application/x-www-form-urlencoded編碼的參數並返回結果,語句如下:SELECT url_decode('%E7%A4%BA%E4%BE%8Bfor+url_decode%3A%2F%2F+%28fdsf%29');返回結果如下:
樣本for url_decode:// (fdsf)
URL_ENCODE
URL_ENCODE(input)命令說明:返回字串的
application/x-www-form-urlencoded編碼形式。規則說明:當
input為NULL時,返回NULL。編碼規則如下:
a~z、A~Z、0-9字元保持不變。
英文句號(.)、短劃線(-)、星號(*)和底線(_)保持不變。
空格轉換為加號(+)。
其他字元根據UTF-8格式編碼轉為位元組值,然後將每個位元組值表示為
%xy的格式,xy是該字元的十六進位表示方式。
輸入實值型別:STRING。
傳回值類型:STRING。
樣本:
返回
樣本for url_encode:// (fdsf)的application/x-www-form-urlencoded編碼形式。SELECT url_encode('樣本for url_encode:// (fdsf)');返回結果如下:
%E7%A4%BA%E4%BE%8Bfor+url_encode%3A%2F%2F+%28fdsf%29
URL_EXTRACT_FRAGMENT
URL_EXTRACT_FRAGMENT(url)命令說明:返回
url中的片段標識符(即以#開頭的內容)。規則說明:
當
url為NULL或url無效時,返回NULL。當
url中沒有片段標識符時,返回Null 字元串。
輸入實值型別:STRING。
傳回值類型:STRING。
樣本:
返回
url中的片段標識符。語句如下:SELECT url_extract_fragment('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');返回結果如下:
Ref1
URL_EXTRACT_HOST
URL_EXTRACT_HOST(url)命令說明:返回
url中的主機名稱或IP地址。規則說明:當
url為NULL或url無效時,返回NULL。輸入實值型別:STRING。
傳回值類型:STRING。
樣本:
返回
url中的主機名稱或IP地址。語句如下: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)命令說明:返回
url的查詢部分中parameter參數指定的資訊。規則說明:當
url為NULL、parameter為NULL或url的查詢部分中沒有parameter參數時,返回NULL。輸入實值型別:
url和parameter均為STRING類型。傳回值類型:STRING。
樣本:
返回
url中查詢字串中k1指定的資訊。語句如下:SELECT url_extract_parameter('http://example.com/path1/p.php?k1=v1&k2=v2&k3&k4#Ref1', 'k1');返回結果如下:
v1返回
url中查詢字串中k5指定的資訊。語句如下: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)命令說明:返回
url中的路徑資訊。規則說明:
當
url為NULL或url無效時,返回NULL。當
url中沒有路徑時,返回Null 字元串。
輸入實值型別:STRING。
傳回值類型:STRING。
樣本:
返回
url中的路徑資訊。語句如下: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)命令說明:返回
url中的連接埠資訊。規則說明:當
url為NULL、url無效或url中沒有連接埠時,返回NULL。輸入實值型別:STRING。
傳回值類型:STRING。
樣本:
返回
url中的連接埠資訊。語句如下:SELECT url_extract_port('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');返回結果如下:
NULL返回
url中的連接埠資訊。語句如下:SELECT url_extract_port('http://example.com:8080/path1/p.php?k1=v1&k2=v2#Ref1');返回結果如下:
8080
URL_EXTRACT_PROTOCOL
URL_EXTRACT_PROTOCOL(url)命令說明:返回
url中的協議資訊。規則說明:當
url為NULL或url無效時,返回NULL。輸入實值型別:STRING。
傳回值類型:STRING。
樣本:
返回
url中的協議資訊。語句如下:SELECT url_extract_protocol('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');返回結果如下:
http
URL_EXTRACT_QUERY
URL_EXTRACT_QUERY(url)命令說明:返回
url中的查詢部分資訊。規則說明:
當
url為NULL或url無效,返回NULL。當
url中沒有查詢部分的資訊時,返回Null 字元串。
輸入實值型別:STRING。
傳回值類型:STRING。
樣本:
返回
url中查詢部分的資訊。語句如下:SELECT url_extract_query('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');返回結果如下:
k1=v1&k2=v2