メインコンテンツまでスキップ
バージョン: 26.x

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