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

JSON_EXTRACT_STRING

デスクリプション

JSON_EXTRACT_STRINGはJSONオブジェクトから<json_path>で指定されたフィールドを抽出し、STRING型に変換します。

Syntax

JSON_EXTRACT_STRING(<json_object>, <json_path>)

パラメータ

  • <json_object>: JSON型、抽出元となる対象パラメータ。
  • <json_path>: String型、対象JSONから目的の要素を抽出するためのJSONパス。

Return Value

Nullable(STRING) 抽出されたSTRING値を返し、場合によってはNULLを返します

Usage 注釈

  1. <json_object>または<json_path>がNULLの場合、NULLを返します。

  2. <json_path>で指定された要素が存在しない場合、NULLを返します。

  3. <json_path>で指定された要素がSTRINGに変換できない場合、NULLを返します。

  4. その動作は"cast + json_extract"と一致しており、以下と等価です:

    CAST(JSON_EXTRACT(<json_object>, <json_path>) as STRING)

そのため、<json_path>で指定されたオブジェクトがSTRING型でない場合でも、STRING型への変換をサポートしている限り、変換された値を取得できます。 5. ここで返されるSTRINGには二重引用符(")は含まれません。 6. JSONオブジェクト内のnull値の場合、結果はNULLではなく文字列"null"になります。 要素がnullかどうかを確認したい場合は、JSON_EXTRACT_ISNULL関数を使用してください。

  1. 通常のパラメータ

    SELECT json_extract_string('{"id": 123, "name": "doris"}', '$.name');
    +---------------------------------------------------------------+
    | json_extract_string('{"id": 123, "name": "doris"}', '$.name') |
    +---------------------------------------------------------------+
    | doris |
    +---------------------------------------------------------------+
  2. パスが存在しない場合

    SELECT json_extract_string('{"id": 123, "name": "doris"}', '$.name2');
    +----------------------------------------------------------------+
    | json_extract_string('{"id": 123, "name": "doris"}', '$.name2') |
    +----------------------------------------------------------------+
    | NULL |
    +----------------------------------------------------------------+
  3. NULLパラメータ

    SELECT json_extract_string('{"id": 123, "name": "doris"}', NULl);
    +-----------------------------------------------------------+
    | json_extract_string('{"id": 123, "name": "doris"}', NULl) |
    +-----------------------------------------------------------+
    | NULL |
    +-----------------------------------------------------------+
    SELECT json_extract_string(NULL, '$.id2');
    +------------------------------------+
    | json_extract_string(NULL, '$.id2') |
    +------------------------------------+
    | NULL |
    +------------------------------------+
  4. 他の型がSTRINGに変換される場合

    SELECT json_extract_string('{"id": 123, "name": "doris"}','$.id');
    +------------------------------------------------------------+
    | json_extract_string('{"id": 123, "name": "doris"}','$.id') |
    +------------------------------------------------------------+
    | 123 |
    +------------------------------------------------------------+
  5. Null値は、NULLの代わりに文字列"null"に変換されます

    SELECT json_extract_string('{"id": null, "name": "doris"}','$.id');
    +-------------------------------------------------------------+
    | json_extract_string('{"id": null, "name": "doris"}','$.id') |
    +-------------------------------------------------------------+
    | null |
    +-------------------------------------------------------------+