マッピング演算関数は、入力されたマッピングデータに対してキーまたは値の要素を抽出するなどの基本的な操作を行い、操作後のマッピングデータを返します。OceanBaseデータベースが現在サポートしているマッピング演算関数には、map_keys() と map_values() が含まれます。
map_keys
map_keys() 関数は、ターゲットマッピング内のキーのリストを返すために使用されます。構文は次のとおりです:
map_keys(map)
入力パラメータはマッピングデータである必要があります。
戻り値は配列型です。
例:
SELECT map_keys(map(1,"apple",2,"banana"));
+-------------------------------------+
| map_keys(map(1,"apple",2,"banana")) |
+-------------------------------------+
| [1,2] |
+-------------------------------------+
1 row in set
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
map_values
map_values() 関数は、ターゲットマッピング内の値のリストを返すために使用されます。構文は次のとおりです:
map_values(map)
入力パラメータはマッピングデータである必要があります。
戻り値は配列型です。
例:
SELECT map_values(map(1,"apple",2,"banana"));
+-------------------------------------+
| map_values(map(1,"apple",2,"banana")) |
+-------------------------------------+
| ["apple","banana"] |
+-------------------------------------+
1 row in set
-- 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