JSON_CONTAINS

JSON_CONTAINS函数用于判断一个JSON数据中是否包含指定的JSON元素。

命令格式

BOOLEAN JSON_CONTAINS(JSON <json>, JSON <candidate> [, STRING <json_path>])

-- 标准示例。
-- 返回true。
SELECT JSON_CONTAINS(JSON '[1,2,3,4,5,6,7,8]', JSON '4');

参数说明

  • json: 必填。需要检查的 JSON数据。JSON类型。

  • candidate:必填。用于检查是否包含的JSON元素。JSON类型。

  • json_path:可选。指定检查的JSON路径。STRING类型。若未指定,默认检查整个JSON数据。

返回值说明

返回BOOLEAN类型。返回规则如下:

  • 若指定的元素存在于json数据中,则返回true,否则返回false。

  • json_path不存在或不合法时,均返回false。

  • jsoncandidateNULL时,返回NULL。

使用示例

-- 返回true。
SELECT JSON_CONTAINS(JSON '[1,2,3,4,5,6,7,8]', JSON '4');

-- 返回true。
SELECT JSON_CONTAINS(JSON '{"a": 1, "b": 2, "c": {"d": 4}}', JSON '1', '$.a');

-- 返回false。
SELECT JSON_CONTAINS(JSON '{"a": 1, "b": 2, "c": {"d": 4}}', JSON '2', '$.a');

-- 返回false。json_path不存在。
SELECT JSON_CONTAINS(JSON '{"a": 1}',JSON '2', '$.b');

-- 返回false。json_path不合法。
SELECT JSON_CONTAINS(JSON '{"a": 1}',JSON '2', 'b');

-- 返回NULL。
SELECT JSON_CONTAINS(JSON '{"a": 1}',NULL);

-- 返回NULL。
SELECT JSON_CONTAINS(NULL,JSON '1'); 

相关函数

JSON_CONTAINS函数属于JSON函数,更多JSON类型函数请参见JSON函数