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 文档中是否存在指定路径。