JSON_CONTAINS
更新时间:2025-10-16
描述
用于判断一个 JSON 文档是否包含指定的 JSON 元素。如果指定的元素存在于 JSON 文档中,则返回 1,否则返回 0。如果 JSON 文档或查询的元素无效,则返回 NULL
。
语法
JSON_CONTAINS(<json_str>, <candidate> [, <json_path>])
必选参数
参数 | 描述 |
---|---|
<json_str> |
需要检查的 JSON 字符串。 |
<candidate> |
用于检查是否包含的 JSON 元素。 |
可选参数
参数 | 描述 |
---|---|
<json_path> |
可选的 JSON 路径,指定检查的 JSON 子文档。如果不提供,默认为根文档。 |
返回值
- 如果 json_elem 存在于 json_doc 中,则返回 1。
- 如果 json_elem 不存在于 json_doc 中,则返回 0。
- 如果任何参数无效或 JSON 文档格式不正确,则返回 NULL。
示例
SQL
1SET @j = '{"a": 1, "b": 2, "c": {"d": 4}}';
2SET @j2 = '1';
3SELECT JSON_CONTAINS(@j, @j2, '$.a');
SQL
1+-------------------------------+
2| JSON_CONTAINS(@j, @j2, '$.a') |
3+-------------------------------+
4| 1 |
5+-------------------------------+
SQL
1SELECT JSON_CONTAINS(@j, @j2, '$.b');
2+-------------------------------+
3| JSON_CONTAINS(@j, @j2, '$.b') |
4+-------------------------------+
5| 0 |
6+-------------------------------+
SQL
1SET @j2 = '{"d": 4}';
2SELECT JSON_CONTAINS(@j, @j2, '$.a');
SQL
1+-------------------------------+
2| JSON_CONTAINS(@j, @j2, '$.a') |
3+-------------------------------+
4| 0 |
5+-------------------------------+
SQL
1SELECT JSON_CONTAINS(@j, @j2, '$.c');
SQL
1+-------------------------------+
2| JSON_CONTAINS(@j, @j2, '$.c') |
3+-------------------------------+
4| 1 |
5+-------------------------------+
SQL
1SELECT json_contains('[1, 2, {"x": 3}]', '1');
2+----------------------------------------+
3| json_contains('[1, 2, {"x": 3}]', '1') |
4+----------------------------------------+
5| 1 |
6+----------------------------------------+