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)