NET_REG_DOMAIN 関数は、URL 文字列から登録可能ドメイン名を解析します。登録可能ドメイン名とは、パブリックサフィックスとその直前のラベルを組み合わせたものです。
使用上の注意
publicsuffix.org のパブリックサフィックスデータには、プライベートドメインも含まれています。この関数は、プライベートドメインをパブリックサフィックスとして扱いません。
たとえば、private.com がパブリックサフィックスデータ内の非公開ドメインである場合、
NET_REG_DOMAIN("test.private.com")は、test.private.com(非公開ドメイン private.com に先行するラベル `test` を加えたもの) ではなく、private.com(パブリックサフィックス com に先行するラベル private を加えたもの) を返します。
構文
STRING NET_REG_DOMAIN(STRING <url>)パラメーター
url: 必須。解析する URL 文字列です。このパラメーターは STRING 型である必要があります。
最良の結果を得るには、URL 文字列が RFC 3986 で定義されているフォーマットに準拠している必要があります。
戻り値
STRING 型の値を返します。次のいずれかの条件が満たされた場合、この関数は NULL を返します。
入力からホスト名を解析できません。
解析されたホスト名の先頭または末尾ではなく、中間に隣接したドットが含まれています。
解析されたホスト名にパブリックサフィックスが含まれていません。
解析されたホスト名に、先行するラベルのないパブリックサフィックスのみが含まれています。
パブリックサフィックスデータは時間とともに変更される可能性があります。したがって、現在 NULL 値を返す入力が、将来的に NULL 以外の値を返す可能性があります。
関連する解析関数
ドメイン名以外の URL の部分を解析するには、次の関数を使用します。
NET_HOST: URL からホスト名を解析します。
NET_PUBLIC_SUFFIX: URL から com、org、または net などのパブリックサフィックスを解析します。
例
SELECT input
,description
,NET_HOST(input) AS HOST
,NET_PUBLIC_SUFFIX(input) AS SUFFIX
,NET_REG_DOMAIN(input) AS DOMAIN
FROM (
SELECT "" AS input, "無効な入力" AS description
UNION ALL SELECT "http://abc.xyz", "標準 URL"
UNION ALL SELECT "//user:password@a.b:80/path?query",
"相対スキーム、ポート、パス、クエリを持つ標準 URL ですが、パブリックサフィックスはありません"
UNION ALL SELECT "https://[::1]:80", "IPv6 ホストを持つ標準 URL"
UNION ALL SELECT "http://example.web.china", "国際化ドメイン名を持つ標準 URL"
UNION ALL SELECT " www.Example.Co.UK ",
"スペース、大文字、スキームなしの非標準 URL"
UNION ALL SELECT "mailto:?to=&subject=&body=", "URL ではなく URI--サポート対象外"
);
+-----------------------------------+-------------------------------------------------------------------------------+-------------------+------------+---------------+
| input | description | host | suffix | domain |
+-----------------------------------+-------------------------------------------------------------------------------+-------------------+------------+---------------+
| | 無効な入力 | NULL | NULL | NULL |
| http://abc.xyz | 標準 URL | abc.xyz | xyz | abc.xyz |
| //user:password@a.b:80/path?query | 相対スキーム、ポート、パス、クエリを持つ標準 URL ですが、パブリックサフィックスはありません | a.b | NULL | NULL |
| https://[::1]:80 | IPv6 ホストを持つ標準 URL | [::1] | NULL | NULL |
| http://example.web.china | 国際化ドメイン名を持つ標準 URL | example.web.china | china | web.china |
| www.Example.Co.UK | スペース、大文字、スキームなしの非標準 URL | www.Example.Co.UK | Co.UK | Example.Co.UK |
| mailto:?to=&subject=&body= | URL ではなく URI--サポート対象外 | mailto | NULL | NULL |
+-----------------------------------+-------------------------------------------------------------------------------+-------------------+------------+---------------+関連関数
NET_REG_DOMAIN はネットワーク関数です。詳細については、「ネットワーク関数」をご参照ください。