MariaDB JSON_VALUE() 函数使用指南
在 MariaDB 中,JSON_VALUE()
是一个内置函数,它根据提供的路径从 JSON 文档返回标量值。
如果您需要从 JSON 文档中查询对象或数组,请使用 JSON_QUERY()
。
MariaDB JSON_VALUE()
语法
这里是 MariaDB JSON_VALUE()
的语法:
JSON_VALUE(json_doc, path)
参数
json_doc
- 必需的。一个 JSON 文档。
path
- 必需的。您应该至少指定一个路径表达式。
如果您提供了错误数量的参数,MariaDB 将报告一个错误: ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_VALUE'
。
返回值
MariaDB JSON_VALUE()
函数根据提供的路径从 JSON 文档返回标量值。
如果 JSON 文档中给定的路径不是一个标量值,JSON_VALUE()
将返回 NULL
。
如果给定的 JSON 无效,MariaDB JSON_VALUE()
函数将返回 NULL
。
如果任何参数为 NULL
,MariaDB JSON_VALUE()
函数将返回 NULL
。
MariaDB JSON_VALUE()
示例
下面几个示例展示了 MariaDB JSON_VALUE()
函数的用法。
基本示例
SET @json_doc = '[1, 2, {"x": 3}]';
SELECT
@json_doc AS 'Json',
JSON_VALUE(@json_doc, '$[0]') AS `$[0]`;
输出:
+------------------+------+
| Json | $[0] |
+------------------+------+
| [1, 2, {"x": 3}] | 1 |
+------------------+------+
如果您给的路径不是一个标量值, MariaDB JSON_VALUE()
将返回 NULL
。
SET @json_doc = '[1, 2, {"x": 3}]';
SELECT
@json_doc AS 'Json',
JSON_VALUE(@json_doc, '$') AS `$`,
JSON_VALUE(@json_doc, '$[2]') AS `$[2]`;
输出:
+------------------+------+------+
| Json | $ | $[2] |
+------------------+------+------+
| [1, 2, {"x": 3}] | NULL | NULL |
+------------------+------+------+
在本示例中,由于 $
是数组和 $[2]
的值是对象,因此他们都返回了 NULL
。
无效的 JSON
如果给定的 JSON 无效,MariaDB JSON_VALUE()
函数将返回 NULL
。
SELECT JSON_VALUE('a', '$[0]');
输出:
+-------------------------+
| JSON_VALUE('a', '$[0]') |
+-------------------------+
| NULL |
+-------------------------+
NULL 参数
如果任何参数为 NULL
,MariaDB JSON_VALUE()
函数将返回 NULL
。
SELECT
JSON_VALUE(NULL, '$'),
JSON_VALUE('[1,2]', NULL);
输出:
+-----------------------+---------------------------+
| JSON_VALUE(NULL, '$') | JSON_VALUE('[1,2]', NULL) |
+-----------------------+---------------------------+
| NULL | NULL |
+-----------------------+---------------------------+
结论
在 MariaDB 中,JSON_VALUE()
是一个内置函数,它根据提供的路径从 JSON 文档返回标量值。