映射操作函数
映射操作函 数对输入的映射数据进行一些基本操作,如提取 Key 或 Value 元素,并返回操作后的映射数据。seekdb 当前所支持的映射操作函数包括 map_keys() 和 map_values()。
map_keys
map_keys() 函数用于返回目标映射中的 Key 列表。语法如下:
map_keys(map)
输入参数需为映射数据。
返回值为数组类型。
示例如下:
SELECT map_keys(map(1,"apple",2,"banana"));
+-------------------------------------+
| map_keys(map(1,"apple",2,"banana")) |
+-------------------------------------+
| [1,2] |
+-------------------------------------+
1 row in set (0.001 sec)
CREATE TABLE t1 (
id INT NOT NULL AUTO_INCREMENT,
m MAP(INT, INT)
);
INSERT INTO t1 (m) VALUES ('{1:1,2:2,3:3}');
INSERT INTO t1 (m) VALUES ('{"1":1, 2 : 2 , "3 " : 3}');
INSERT INTO t1 (m) VALUES ('{1.5:2, 1.6:"3"}');
SELECT m, map_keys(m) FROM t1;
+---------------+-------------+
| m | map_keys(m) |
+---------------+-------------+
| {1:1,2:2,3:3} | [1,2,3] |
| {1:1,2:2,3:3} | [1,2,3] |
| {2:3} | [2] |
+---------------+-------------+
3 rows in set (0.002 sec)
map_values
map_values() 函数用于返回目标映射中的 Value 列表。语法如下:
map_values(map)
输入参数需为映射数据。
返回值为数组类型。
示例如下:
SELECT map_values(map(1,"apple",2,"banana"));
+-------------------------------------+
| map_values(map(1,"apple",2,"banana")) |
+-------------------------------------+
| ["apple","banana"] |
+-------------------------------------+
1 row in set (0.001 sec)
-- t1 建表和插入语句见 map_keys 示例
SELECT m, map_values(m) FROM t1;
+---------------+---------------+
| m | map_values(m) |
+---------------+---------------+
| {1:1,2:2,3:3} | [1,2,3] |
| {1:1,2:2,3:3} | [1,2,3] |
| {2:3} | [3] |
+---------------+---------------+
3 rows in set (0.002 sec)