に最終更新
JSON_CONTAINS
説明
JSON ドキュメントに指定した JSON 要素が含まれるかを判定します。要素が存在する場合は 1、存在しない場合は 0 を返します。JSON ドキュメントまたは検索する要素が無効な場合は NULL を返します。
構文
JSON_CONTAINS(<json_object>, <candidate>[, <json_path>])
パラメータ
必須パラメータ
<json_object>JSON 型。<candidate>が含まれるかを判定する対象です。<candidate>JSON 型。含まれるかを判定する値です。
任意のパラメータ
<json_path>String 型。検索の開始パスです。省略すると、デフォルトでルートから検索します。
戻り値
- Null: 三つのパラメータのいずれかが 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 |
+---------------------------------------------+