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

GET_JSON_BIGINT

説明

json文字列内の指定されたパスのinteger(BIGINT)コンテンツを解析して取得します。

構文

GET_JSON_BIGINT( <json_str>, <json_path>)

Required パラメータ

parametersdescribed
<json_str>データを抽出するJSONストリングが必要です。
<json_path>JSONパス。フィールドの場所を指定します。パスはドット記法で表現できます。

Return Value

  • パスで指定されたフィールドのBIGINT値を返します。
  • 指定されたパスに対応するフィールドが見つからない場合、またはフィールド値がBIGINT型に変換できない場合はNULLを返します。

Usage 注釈

<json_str>は$記号で始まり、.をパス区切り文字として使用する必要があります。パスに.が含まれる場合は、ダブルクォートで囲むことができます。 配列のインデックスを表すには[ ]を使用し、0から開始します。 pathの内容に"、[、]を含めることはできません。 <json_str>の形式が正しくない場合、または<json_path>の形式が正しくない場合、またはマッチが見つからない場合はNULLを返します。 なお、同じ機能を実現するにはjsonb型とjsonb_extract_XXX関数の使用が推奨されます。 特殊な状況は以下のように処理されます:

  • JSONに指定されたフィールドが存在しない場合は<json_path>NULLを返します
  • JSONで<json_path>が指定するフィールドの実際の型がjson_extract_tで指定された型と一致しない場合、指定された型tに無損失で変換できる場合は指定された型tを返し、変換できない場合はNULLを返します。

Examples

  1. "k1"をキーとする値を取得する
SELECT get_json_bigint('{"k1":1, "k2":"2"}', "$.k1");
+-----------------------------------------------+
| get_json_bigint('{"k1":1, "k2":"2"}', '$.k1') |
+-----------------------------------------------+
| 1 |
+-----------------------------------------------+
  1. キー "my.key" を持つ配列の2番目の要素を取得します
SELECT get_json_bigint('{"k1":"v1", "my.key":[1, 1678708107000, 3]}', '$. "my.key"[1]');
+---------------------------------------------------------------------------------+
| get_json_bigint('{"k1":"v1", "my.key":[1, 1678708107000, 3]}', '$. "my.key"[1]') |
+---------------------------------------------------------------------------------+
| 1678708107000 |
+---------------------------------------------------------------------------------+
  1. secondary path k1.key -> k2 を持つ配列内の最初の要素を取得します。
SELECT get_json_bigint('{"k1.key":{"k2":[1678708107000, 2]}}', '$. "k1.key".k2[0]');

+-----------------------------------------------------------------------------+
| get_json_bigint('{"k1.key":{"k2":[1678708107000, 2]}}', '$."k1.key".k2[0]') |
+-----------------------------------------------------------------------------+
| 1678708107000 |
+-----------------------------------------------------------------------------+