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 |
+-------------------------------------------------------------------------+