JSON_CONTAINS
説明
JSONドキュメントに指定されたJSON要素が含まれているかどうかを判定するために使用されます。指定された要素がJSONドキュメント内に存在する場合は1を返し、存在しない場合は0を返します。JSONドキュメントまたはクエリ対象の要素が無効な場合は、NULLを返します。
構文
JSON_CONTAINS(<json_object>, <candidate>[, <json_path>])
パラメータ
必須パラメータ
<json_object>JSON型、この中に<candidate>が存在するかをチェックします。<candidate>JSON型、判定対象となる候補値です。
オプションパラメータ
<json_path>String型、検索開始パスです。指定されない場合は、デフォルトでルートから開始されます。
戻り値
- Null: 3つのパラメータのいずれかがNULLの場合、NULLを返します
- True:
<json_object>が<candidate>を含む場合、Trueを返します。 - False:
<json_object>が<candidate>を含まない場合、Falseを返します。 <json_object>または<candidate>がJSON型でない場合、エラーが報告されます。
例
-
例1
SET @j = '{"a": 1, "b": 2, "c": {"d": 4}}';
SET @j2 = '1';
SELECT JSON_CONTAINS(@j, @j2, '$.a');+-------------------------------+
| JSON_CONTAINS(@j, @j2, '$.a') |
+-------------------------------+
| 1 |
+-------------------------------+SELECT JSON_CONTAINS(@j, @j2, '$.b');+-------------------------------+
| JSON_CONTAINS(@j, @j2, '$.b') |
+-------------------------------+
| 0 |
+-------------------------------+SELECT JSON_CONTAINS(@j, '{"a": 1}');+-------------------------------+
| JSON_CONTAINS(@j, '{"a": 1}') |
+-------------------------------+
| 1 |
+-------------------------------+ -
NULLパラメータ
SELECT JSON_CONTAINS(NULL, '{"a": 1}');+---------------------------------+
| JSON_CONTAINS(NULL, '{"a": 1}') |
+---------------------------------+
| NULL |
+---------------------------------+SELECT JSON_CONTAINS('{"a": 1}', NULL);+---------------------------------+
| JSON_CONTAINS('{"a": 1}', NULL) |
+---------------------------------+
| NULL |
+---------------------------------+SELECT JSON_CONTAINS('{"a": 1}', '{"a": 1}', NULL);+---------------------------------------------+
| JSON_CONTAINS('{"a": 1}', '{"a": 1}', NULL) |
+---------------------------------------------+
| NULL |
+---------------------------------------------+