json_array_contains
json_array_contains(json, value) → boolean
确定 JSON中是否存在值(包含 JSON 数组的字符串)。
json_array_get
json_array_get(json_array, index) → varchar
将指定 index 处的元素返回到 JSON 数组中,index 从0开始计数。
json_array_length
json_array_length(json) → bigint
返回 JSON 的数组长度(包含 JSON 数组的字符串)。
json_extract
json_extract(json, json_path) → json
评估 JSON 上的 json_path 表达式(包含 JSON 的字符串),并将结果作为 JSON 字符串返回。
json_extract_scalar
json_extract_scalar(json, json_path) → varchar
与
json_extract()
类似,但返回值是一个字符串。json_path引用的值必须是scalar(boolean, number 或 string)。
json_format
json_format(json) → varchar
将 json 作为字符串返回。
json_parse
json_parse(string) → json
解析字符串作为 JSON。
json_size
json_size(json, json_path) → bigint
与
json_extract()
一样,但返回 size 的大小。如果是对象或数组,则大小是成员数,scalar 的大小为零。
json_array_contains(json, value) → boolean
SQL示例:
/*+engine=mpp*/SELECT json_array_contains('[1, 2, 3]', 2);
返回结果:
mysql> /*+engine=mpp*/SELECT json_array_contains('[1, 2, 3]', 2);
+-------+
| _col0 |
+-------+
| 1 |
+-------+
1 row in set (0.05 sec)
json_array_get(json_array, index) → varchar
SQL示例一:
/*+engine=mpp*/select json_array_get('["a","b","c"]', 0);
返回结果:
mysql> /*+engine=mpp*/select json_array_get('["a","b","c"]', 0);
+-------+
| _col0 |
+-------+
| a |
+-------+
1 row in set (0.56 sec)
SQL示例二:
/*+engine=mpp*/select json_array_get('["a","b","c"]', -1);
返回结果:
mysql> /*+engine=mpp*/select json_array_get('["a","b","c"]', -1);
+-------+
| _col0 |
+-------+
| c |
+-------+
1 row in set (0.11 sec)
SQL示例三:
/*+engine=mpp*/select json_array_get('["a","b","c"]', 3);
返回结果:(索引不存在,返回NULL)
mysql> /*+engine=mpp*/select json_array_get('["a","b","c"]', 3);
+-------+
| _col0 |
+-------+
| NULL |
+-------+
1 row in set (0.03 sec)
json_array_length(json) → bigint
SQL示例:
/*+engine=mpp*/SELECT json_array_length('[1, 2, 3]');
返回结果:
mysql> /*+engine=mpp*/SELECT json_array_length('[1, 2, 3]');
+-------+
| _col0 |
+-------+
| 3 |
+-------+
1 row in set (0.11 sec)
json_extract(json, json_path) → json
SQL示例:(使用json path的方式提取json中数据)
/*+engine=mpp*/select json_extract('{"key":{"book":[1,2,3]}}', '$.key.book')
返回结果:
mysql> /*+engine=mpp*/select json_extract('{"key":{"book":[1,2,3]}}', '$.key.book');
+---------+
| _col0 |
+---------+
| [1,2,3] |
+---------+
1 row in set (0.14 sec)
json_extract_scalar(json, json_path) → varchar
SQL示例:
/*+engine=mpp*/select json_extract_scalar('{"key":{"book":[1,2,3]}}', '$.key.book[0]');
返回结果:
mysql> /*+engine=mpp*/select json_extract_scalar('{"key":{"book":[1,2,3]}}', '$.key.book[0]');
+-------+
| _col0 |
+-------+
| 1 |
+-------+
1 row in set (0.05 sec)
json_format(json) → varchar
SQL示例一:
/*+engine=mpp*/SELECT json_format(JSON '[1, 2, 3]');
返回结果:
mysql> /*+engine=mpp*/SELECT json_format(JSON '[1, 2, 3]');
+---------+
| _col0 |
+---------+
| [1,2,3] |
+---------+
1 row in set (0.10 sec)
SQL示例二:
/*+engine=mpp*/SELECT json_format(JSON '"a"');
返回结果:
mysql> /*+engine=mpp*/SELECT json_format(JSON '"a"');
+-------+
| _col0 |
+-------+
| "a" |
+-------+
1 row in set (0.07 sec)
json_parse(string) → json
SQL示例:
/*+engine=mpp*/SELECT json_parse('[1, 2, 3]');
返回结果:
mysql> /*+engine=mpp*/SELECT json_parse('[1, 2, 3]');
+---------+
| _col0 |
+---------+
| [1,2,3] |
+---------+
1 row in set (0.03 sec)
json_size(json, json_path) → bigint
SQL示例一:
/*+engine=mpp*/SELECT json_size('{"x": {"a": 1, "b": 2}}', '$.x');
返回结果:
mysql> /*+engine=mpp*/SELECT json_size('{"x": {"a": 1, "b": 2}}', '$.x');
+-------+
| _col0 |
+-------+
| 2 |
+-------+
1 row in set (0.11 sec)
SQL示例二:
/*+engine=mpp*/
SELECT json_size('{"x": [1, 2, 3]}', '$.x');
返回结果:
mysql> /*+engine=mpp*/SELECT json_size('{"x": [1, 2, 3]}', '$.x');
+-------+
| _col0 |
+-------+
| 3 |
+-------+
1 row in set (0.04 sec)