La fonction NET_PUBLIC_SUFFIX extrait le suffixe public, tel que com, org ou net, d'une chaîne d'URL.
Notes
Les suffixes publics correspondent aux domaines ICANN enregistrés sur publicsuffix.org. Les données de suffixes publics disponibles sur publicsuffix.org incluent également des domaines privés. Cette fonction ignore les domaines privés.
Syntaxe
STRING NET_PUBLIC_SUFFIX(STRING <url>)
Paramètres
url : Obligatoire. Chaîne d'URL à analyser. Ce paramètre doit être de type STRING.
Pour obtenir des résultats optimaux, la chaîne d'URL doit respecter le format défini dans la RFC 3986.
Valeur renvoyée
Renvoie une valeur de type STRING. La fonction renvoie NULL si l'une des conditions suivantes est remplie :
Le nom d'hôte ne peut pas être extrait de la chaîne d'URL.
Le nom d'hôte extrait contient des points contigus qui ne se trouvent ni au début ni à la fin.
Le nom d'hôte extrait ne contient aucun suffixe public.
Les données relatives aux suffixes publics peuvent évoluer avec le temps. Par conséquent, une entrée qui renvoie actuellement une valeur NULL pourrait renvoyer une valeur non nulle à l'avenir.
Fonctions d'analyse connexes
Pour analyser d'autres parties d'une URL en plus du suffixe public, utilisez les fonctions suivantes :
NET_HOST : Extrait le nom d'hôte d'une URL.
NET_REG_DOMAIN : Extrait le domaine enregistré ou enregistrable d'une URL (le suffixe public plus l'étiquette précédente).
Exemples
SELECT input
,description
,NET_HOST(input) AS HOST
,NET_PUBLIC_SUFFIX(input) AS SUFFIX
,NET_REG_DOMAIN(input) AS DOMAIN
FROM (
SELECT "" AS input, "invalid input" AS description
UNION ALL SELECT "http://abc.xyz", "standard URL"
UNION ALL SELECT "//user:password@a.b:80/path?query",
"standard URL with relative scheme, port, path and query, but no public suffix"
UNION ALL SELECT "https://[::1]:80", "standard URL with IPv6 host"
UNION ALL SELECT "http://example.web.china", "standard URL with internationalized domain name"
UNION ALL SELECT " www.Example.Co.UK ",
"non-standard URL with spaces, upper case letters, and without scheme"
UNION ALL SELECT "mailto:?to=&subject=&body=", "URI rather than URL--unsupported"
);
+-----------------------------------+-------------------------------------------------------------------------------+-------------------+------------+---------------+
| input | description | host | suffix | domain |
+-----------------------------------+-------------------------------------------------------------------------------+-------------------+------------+---------------+
| | invalid input | NULL | NULL | NULL |
| http://abc.xyz | standard URL | abc.xyz | xyz | abc.xyz |
| //user:password@a.b:80/path?query | standard URL with relative scheme, port, path and query, but no public suffix | a.b | NULL | NULL |
| https://[::1]:80 | standard URL with IPv6 host | [::1] | NULL | NULL |
| http://example.web.china | standard URL with internationalized domain name | example.web.china | china | web.china |
| www.Example.Co.UK | non-standard URL with spaces, upper case letters, and without scheme | www.Example.Co.UK | Co.UK | Example.Co.UK |
| mailto:?to=&subject=&body= | URI rather than URL--unsupported | mailto | NULL | NULL |
+-----------------------------------+-------------------------------------------------------------------------------+-------------------+------------+---------------+
Fonctions connexes
NET_PUBLIC_SUFFIX est une fonction réseau. Pour plus d'informations sur les fonctions réseau, consultez Fonctions réseau.