メインコンテンツまでスキップ

json_query

json_query

説明

JSONオブジェクト内のjson_path式によって特定される要素の値をクエリし、JSON値を返します。

構文

json_query(json_object_expr, json_path)

パラメータ

  • json_object_expr: JSONオブジェクトを表す式です。オブジェクトはJSONカラム、またはPARSE_JSONなどのJSONコンストラクタ関数によって生成されたJSONオブジェクトです。
  • json_path: JSONオブジェクト内の要素へのパスを表す式です。このパラメータの値は文字列です。StarRocksでサポートされているJSONパスの構文については、JSONの関数と演算子の概要を参照してください。

返り値

JSON値を返します。

要素が存在しない場合、json_query関数はNULLとなるSQL値を返します。

例 1: 指定されたJSONオブジェクト内の'$.a.b'式によって特定される要素の値をクエリします。この例では、json_query関数はJSON値1を返します。

mysql> SELECT json_query(PARSE_JSON('{"a": {"b": 1}}'), '$.a.b') ;

-> 1

例 2: 指定されたJSONオブジェクト内の'$.a.c'式によって特定される要素の値をクエリします。この例では、要素が存在しないため、json_query関数はNULLとなるSQL値を返します。

mysql> SELECT json_query(PARSE_JSON('{"a": {"b": 1}}'), '$.a.c') ;

-> NULL

例 3: 指定されたJSONオブジェクト内の'$.a[2]'式によって特定される要素の値をクエリします。この例では、配列aという名前のJSONオブジェクトにはインデックス2の要素が含まれ、その要素の値は3です。したがって、JSON_QUERY関数はJSON値3を返します。

mysql> SELECT json_query(PARSE_JSON('{"a": [1,2,3]}'), '$.a[2]') ;

-> 3

例 4: 指定されたJSONオブジェクト内の'$.a[3]'式によって特定される要素をクエリします。この例では、配列aという名前のJSONオブジェクトにはインデックス3の要素が含まれていないため、json_query関数はNULLとなるSQL値を返します。

mysql> SELECT json_query(PARSE_JSON('{"a": [1,2,3]}'), '$.a[3]') ;

-> NULL