對url解析後,按照輸入的一組鍵key1、key2等抽取各個鍵指定的字串。
注意事項
該功能與PARSE_URL類似,但它可以同時提取多個鍵對應的字串,效能更優。
命令格式
string parse_url_tuple(string <url>, string <key1>, string <key2>,...)
參數說明
url:必填。STRING類型。URL連結。無效URL連結會返回報錯。
key1、key2:必填。STRING類型。指定要抽取的鍵。取值範圍如下:
HOST:擷取主機地址,可以為網域名稱或IP地址。
PATH:擷取網路資源在伺服器中的路徑。
QUERY:查詢字串,指代待查詢的內容。
REF:擷取URL注釋。滑鼠移至上方至URL連結上時顯示的內容。
PROTOCOL:擷取協議類型。
AUTHORITY:擷取伺服器的網域名稱或IP地址、連接埠號碼和使用者鑒權資訊(例如使用者名稱、密碼)。
FILE:擷取網路資源在伺服器中的路徑和待查詢的內容,即由PATH和QUERY組成。
USERINFO:使用者鑒權資訊。
QUERY:<KEY>:擷取查詢字串中指定欄位(Key)的取值。
不區分大小寫。不在該範圍內的取值會返回報錯。
返回說明
返回STRING類型。url或key值為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函數屬於字串函數,更多尋找字串、轉換字串格式的相關函數請參見字串函數。