MariaDB JSON_EXISTS() 函数使用指南
在 MariaDB 中,JSON_EXISTS()
是一个内置函数,它用来检查给定的 JSON 文档中是否存在指定路径。
MariaDB JSON_EXISTS()
函数类似于 JSON_CONTAINS_PATH()
函数。
您还可以使用 JSON_CONTAINS()
函数检查一个 JSON 文档中是否存在一个值。
MariaDB JSON_EXISTS()
语法
这里是 MariaDB JSON_EXISTS()
的语法:
JSON_EXISTS(json_doc, one_or_all, path[, path])
参数
json_doc
- 必需的。一个 JSON 文档。
path
- 必需的。您应该至少指定一个路径表达式。
如果您提供了错误数量的参数,MariaDB 将报告一个错误: ERROR 1582 (42000): Incorrect parameter count in the call to native function 'JSON_EXISTS'
。
返回值
MariaDB JSON_EXISTS()
函数返回 1
或者 0
以指示给定的 JSON 文档中是否包含通过路径表达式给定的路径。
如果给定的 JSON 无效,MariaDB JSON_EXISTS()
函数将返回 NULL
。
如果任何参数为 NULL
,MariaDB JSON_EXISTS()
函数将返回 NULL
。
MariaDB JSON_EXISTS()
示例
下面几个示例展示了 MariaDB JSON_EXISTS()
函数的用法。
数组
SET @json_doc = '[1, 2, {"x": 3}]';
SELECT
@json_doc AS 'Json',
JSON_EXISTS(@json_doc, '$[0]') AS `$[0]`,
JSON_EXISTS(@json_doc, '$[3]') AS `$[3]`,
JSON_EXISTS(@json_doc, '$[2].x') AS `$[2].x`;
输出:
+------------------+------+------+--------+
| Json | $[0] | $[3] | $[2].x |
+------------------+------+------+--------+
| [1, 2, {"x": 3}] | 1 | 0 | 1 |
+------------------+------+------+--------+
在本例中,
$[0]'
代表根数组的第 1 个元素。
$[3]'
代表根数组的第 4 个元素。
$[2].x
代表根数组的第 3 个元素中的 x
成员。
SELECT JSON_EXISTS('{ "name": "Wag" }', '$.type');
输出:
+--------------------------------------------+
| JSON_EXISTS('{ "name": "Wag" }', '$.type') |
+--------------------------------------------+
| 0 |
+--------------------------------------------+
对象
SET @json_doc = '{"x":1, "y":[0,1]}';
SELECT
@json_doc AS 'Json',
JSON_EXISTS(@json_doc, '$.x') AS `$.x`,
JSON_EXISTS(@json_doc, '$.y') AS `$.y`,
JSON_EXISTS(@json_doc, '$.z') AS `$.z`,
JSON_EXISTS(@json_doc, '$.y[0]') AS `$.y[0]`,
JSON_EXISTS(@json_doc, '$.y[2]') AS `$.y[2]`;
输出:
+--------------------+------+------+------+--------+--------+
| Json | $.x | $.y | $.z | $.y[0] | $.y[2] |
+--------------------+------+------+------+--------+--------+
| {"x":1, "y":[0,1]} | 1 | 1 | 0 | 1 | 0 |
+--------------------+------+------+------+--------+--------+
无效的 JSON
如果给定的 JSON 无效,MariaDB JSON_EXISTS()
函数将返回 NULL
。
SELECT JSON_EXISTS('a', '$[0]');
输出:
+--------------------------+
| JSON_EXISTS('a', '$[0]') |
+--------------------------+
| NULL |
+--------------------------+
NULL 参数
如果任何参数为 NULL
,MariaDB JSON_EXISTS()
函数将返回 NULL
。
SELECT
JSON_EXISTS(NULL, '$'),
JSON_EXISTS('[1,2]', NULL);
输出:
+------------------------+----------------------------+
| JSON_EXISTS(NULL, '$') | JSON_EXISTS('[1,2]', NULL) |
+------------------------+----------------------------+
| NULL | NULL |
+------------------------+----------------------------+
结论
在 MariaDB 中,JSON_EXISTS()
是一个内置函数,它用来检查给定的 JSON 文档中是否存在指定路径。