MariaDB JSON_KEYS() 函数使用指南
在 MariaDB 中,JSON_KEYS()
是一个内置函数,它返回一个包含了指定的 JSON 对象中最上层的成员 (key) 的数组。
MariaDB JSON_KEYS()
语法
这里是 MariaDB JSON_KEYS()
的语法:
JSON_KEYS(json)
JSON_KEYS(json, path)
参数
json
- 必需的。一个 JSON 对象文档。
path
- 可选的。路径表达式。
如果您提供了错误数量的参数,MariaDB 将报告一个错误: ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_KEYS'
。
返回值
MariaDB JSON_KEYS()
函数返回一个包含了指定的 JSON 对象中最上层的成员 (key) 的数组。如果指定了路径表达式,则返回路径表达式匹配的 JSON 对象中的最上层的成员组成的数组。
如果存在以下的情况, JSON_KEYS()
函数将返回 NULL
:
- 未指定路径,且 JSON 文档不是一个 JSON 对象。
- 指定了路径,且路径匹配的 JSON 值不是 JSON 对象。
- 任意参数为
NULL
。
MariaDB JSON_KEYS()
示例
这里列出了几个常见的 JSON_KEYS()
用法示例。
基本示例
下面的示例返回一个 JSON 对象的所有顶层成员组成的数组。
SELECT JSON_KEYS('{"x": 1, "y": 2, "z": 3}');
输出:
+---------------------------------------+
| JSON_KEYS('{"x": 1, "y": 2, "z": 3}') |
+---------------------------------------+
| ["x", "y", "z"] |
+---------------------------------------+
指定路径
我们也可以返回有路径表达式匹配的 JSON 对象的键。
SELECT JSON_KEYS('[0, {"x": 1, "y": 2, "z": 3}]', '$[1]');
输出:
+----------------------------------------------------+
| JSON_KEYS('[0, {"x": 1, "y": 2, "z": 3}]', '$[1]') |
+----------------------------------------------------+
| ["x", "y", "z"] |
+----------------------------------------------------+
非 JSON 对象
如果匹配的 JSON 文档不是 JSON 对象,JSON_KEYS()
返回 NULL
。这个示例说明了这一点:
SELECT
JSON_KEYS('1') as `keys of 1`,
JSON_KEYS('true') as `keys of true`,
JSON_KEYS('"hello"') as `keys of "hello"`,
JSON_KEYS('[1, 2]') as `keys of [1, 2]`;
输出:
+-----------+--------------+-----------------+----------------+
| keys of 1 | keys of true | keys of "hello" | keys of [1, 2] |
+-----------+--------------+-----------------+----------------+
| NULL | NULL | NULL | NULL |
+-----------+--------------+-----------------+----------------+
空对象
如果给定的对象为空, MariaDB JSON_KEYS()
将返回 NULL
:
SELECT JSON_KEYS('{}');
输出:
+-----------------+
| JSON_KEYS('{}') |
+-----------------+
| [] |
+-----------------+
NULL
参数
如果任何参数为 NULL
, MariaDB JSON_KEYS()
将返回 NULL
:
SELECT
JSON_KEYS(NULL),
JSON_KEYS(NULL, '$'),
JSON_KEYS('{}', NULL);
输出:
+-----------------+----------------------+-----------------------+
| JSON_KEYS(NULL) | JSON_KEYS(NULL, '$') | JSON_KEYS('{}', NULL) |
+-----------------+----------------------+-----------------------+
| NULL | NULL | NULL |
+-----------------+----------------------+-----------------------+
结论
在 MariaDB 中,JSON_KEYS()
是一个内置函数,它返回一个包含了指定的 JSON 对象中最上层的成员 (key) 的数组。