メインコンテンツまでスキップ

JSON_CONTAINS

説明

この関数は、JSONドキュメントに指定されたJSON要素が含まれているかどうかをチェックするために使用されます。指定された要素がJSONドキュメントに存在する場合は1を返し、そうでなければ0を返します。JSONドキュメントまたはクエリされる要素が無効な場合は、NULLを返します。

構文

JSON_CONTAINS(<json_str>, <candidate> [, <json_path>])

必須パラメータ

パラメータ説明
<json_str>チェック対象のJSON文字列。
<candidate>包含をチェックするJSON要素。

オプションパラメータ

パラメータ説明
<json_path>チェックするサブドキュメントを指定するオプションのJSONパス。指定されない場合は、デフォルトでルートドキュメントが使用されます。

戻り値

  • <json_path>json_docに存在する場合、1を返します。
  • <json_path>json_docに存在しない場合、0を返します。
  • いずれかのパラメータが無効またはJSONドキュメントの形式が正しくない場合、NULLを返します。


SELECT JSON_CONTAINS('{"a": 1, "b": 2, "c": {"d": 4}}', '1', '$.a');

+------------------------------------------------------------------------------------------+
| json_contains(cast('{"a": 1, "b": 2, "c": {"d": 4}}' as JSON), cast('1' as JSON), '$.a') |
+------------------------------------------------------------------------------------------+
| 1 |
+------------------------------------------------------------------------------------------+


SELECT json_contains('[1, 2, {"x": 3}]', '1');

+-------------------------------------------------------------------------+
| json_contains(cast('[1, 2, {"x": 3}]' as JSON), cast('1' as JSON), '$') |
+-------------------------------------------------------------------------+
| 1 |
+-------------------------------------------------------------------------+