メインコンテンツまでスキップ
に最終更新

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. 例 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 |
    +-------------------------------+
  2. 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 |
    +---------------------------------------------+