ロックとチュウーハイとこりんがるな日々

日々のインプットした事をアウトプットする場所

prestoの便利関数 url_function

prestoにはURLを分解する関数が付いています、使うと正規表現で分割してたのがアホらしくなるほど便利なんでめもっときます

select 
  url_extract_fragment('http://www.hoge.com:8080/fuga/var/index.php?flag=1&flag2=2#test'),
  url_extract_host('http://www.hoge.com:8080/fuga/var/index.php?flag=1&flag2=2#test'),
  url_extract_parameter('http://www.hoge.com:8080/fuga/var/index.php?flag=1&flag2=2#test', 'flag'),
  url_extract_path('http://www.hoge.com:8080/fuga/var/index.php?flag=1&flag2=2#test'),
  url_extract_port('http://www.hoge.com:8080/fuga/var/index.php?flag=1&flag2=2#test'),
  url_extract_protocol('http://www.hoge.com:8080/fuga/var/index.php?flag=1&flag2=2#test'),
  url_extract_query('http://www.hoge.com:8080/fuga/var/index.php?flag=1&flag2=2#test')
;
  • url_extract_fragment([url])

    与えられたURLからfragment部分を取得します ↑のSQLからは以下が取得されます

      test
    
  • url_extract_host([url])

    与えられたURLからhost部分を取得します ↑のSQLからは以下が取得されます

      www.hoge.com
    
  • url_extract_parameter([url], [parameter_name])

    与えられたURLから指定したパラメーターを取得します ↑のSQLからは以下が取得されます

      1
    
  • url_extract_path([url])

    与えられたURLからpath部分を取得します ↑のSQLからは以下が取得されます

      /fuga/var/index.php
    
  • url_extract_port([url])

    与えられたURLからport部分を取得します ↑のSQLからは以下が取得されます

      8080
    
  • url_extract_protocol([url])

    与えられたURLからprotocol部分を取得します ↑のSQLからは以下が取得されます

      http
    
  • url_extract_query([url])

    与えられたURLからprotocol部分を取得します ↑のSQLからは以下が取得されます

      flag=1&flag2=2
    

公式: https://prestodb.io/docs/current/functions/url.html