PARSE_URL_TUPLE

url解析后,按照输入的一组键key1key2等抽取各个键指定的字符串。

注意事项

该功能与PARSE_URL类似,但它可以同时提取多个键对应的字符串,性能更优。

命令格式

string parse_url_tuple(string <url>, string <key1>, string <key2>,...)

参数说明

  • url:必填。STRING类型。URL链接。无效URL链接会返回报错。

  • key1key2:必填。STRING类型。指定要抽取的键。取值范围如下:

    • HOST:获取主机地址,可以为域名或IP地址。

    • PATH:获取网络资源在服务器中的路径。

    • QUERY:查询字符串,指代待查询的内容。

    • REF:获取URL注释。鼠标悬停至URL链接上时显示的内容。

    • PROTOCOL:获取协议类型。

    • AUTHORITY:获取服务器的域名或IP地址、端口号和用户鉴权信息(例如用户名、密码)。

    • FILE:获取网络资源在服务器中的路径和待查询的内容,即由PATH和QUERY组成。

    • USERINFO:用户鉴权信息。

    • QUERY:<KEY>:获取查询字符串中指定字段(Key)的取值。

    不区分大小写。不在该范围内的取值会返回报错。

返回说明

返回STRING类型。urlkey值为NULL时,返回报错。

使用示例

抽取file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose中各个键对应的字符串。命令示例如下。

select parse_url_tuple('file://username:password@example.com:8042/over/there/index.dtb?type=animal&name=narwhal#nose', 'HOST', 'PATH', 'QUERY', 'REF', 'PROTOCOL', 'AUTHORITY', 'FILE', 'USERINFO', 'QUERY:type', 'QUERY:name') as (item0, item1, item2, item3, item4, item5, item6, item7, item8, item9);

返回结果如下。

+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
| item0      | item1      | item2      | item3      | item4      | item5      | item6      | item7      | item8      | item9      |
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+
| example.com | /over/there/index.dtb | type=animal&name=narwhal | nose       | file       | username:password@example.com:8042 | /over/there/index.dtb?type=animal&name=narwhal | username:password | animal     | narwhal    |
+------------+------------+------------+------------+------------+------------+------------+------------+------------+------------+

相关函数

PARSE_URL_TUPLE函数属于字符串函数,更多查找字符串、转换字符串格式的相关函数请参见字符串函数