URL函数
本文介绍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
中没有片段标识符时,返回空字符串。
输入值类型: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
中没有路径时,返回空字符串。
输入值类型: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
中没有查询部分的信息时,返回空字符串。
输入值类型:STRING。
返回值类型:STRING。
示例:
返回
url
中查询部分的信息。语句如下:SELECT url_extract_query('http://example.com/path1/p.php?k1=v1&k2=v2#Ref1');
返回结果如下:
k1=v1&k2=v2