推荐答案
Presto 提供了多种 URL 函数,用于处理和解析 URL。以下是一些常用的 URL 函数:
- url_extract_parameter(url, name): 从 URL 中提取指定名称的参数值。
- url_extract_path(url): 从 URL 中提取路径部分。
- url_extract_protocol(url): 从 URL 中提取协议部分(如
http
、https
)。 - url_extract_host(url): 从 URL 中提取主机部分。
- url_extract_port(url): 从 URL 中提取端口号。
- url_extract_query(url): 从 URL 中提取查询字符串部分。
- url_encode(value): 对字符串进行 URL 编码。
- url_decode(value): 对 URL 编码的字符串进行解码。
本题详细解读
1. url_extract_parameter(url, name)
- 功能: 从给定的 URL 中提取指定名称的参数值。
- 示例:
SELECT url_extract_parameter('http://example.com/path?name=John&age=30', 'name'); -- 返回 'John'
2. url_extract_path(url)
- 功能: 从给定的 URL 中提取路径部分。
- 示例:
SELECT url_extract_path('http://example.com/path/to/resource'); -- 返回 '/path/to/resource'
3. url_extract_protocol(url)
- 功能: 从给定的 URL 中提取协议部分。
- 示例:
SELECT url_extract_protocol('https://example.com'); -- 返回 'https'
4. url_extract_host(url)
- 功能: 从给定的 URL 中提取主机部分。
- 示例:
SELECT url_extract_host('http://example.com/path'); -- 返回 'example.com'
5. url_extract_port(url)
- 功能: 从给定的 URL 中提取端口号。
- 示例:
SELECT url_extract_port('http://example.com:8080/path'); -- 返回 '8080'
6. url_extract_query(url)
- 功能: 从给定的 URL 中提取查询字符串部分。
- 示例:
SELECT url_extract_query('http://example.com/path?name=John&age=30'); -- 返回 'name=John&age=30'
7. url_encode(value)
- 功能: 对字符串进行 URL 编码。
- 示例:
SELECT url_encode('Hello World!'); -- 返回 'Hello%20World%21'
8. url_decode(value)
- 功能: 对 URL 编码的字符串进行解码。
- 示例:
SELECT url_decode('Hello%20World%21'); -- 返回 'Hello World!'