JSON_EXTRACT_DOUBLE
説明
JSON_EXTRACT_DOUBLEは、JSONオブジェクトから<json_path>で指定されたフィールドを抽出し、DOUBLE型に変換します。
構文
JSON_EXTRACT_DOUBLE(<json_object>, <json_path>)
パラメータ
<json_object>: JSON型、抽出元となる対象パラメータ。<json_path>: String型、対象JSONから対象要素を抽出するためのJSONパス。
戻り値
Nullable(DOUBLE) 抽出されたDOUBLE値を返す。場合によってはNULLを返す
使用上の注意
-
<json_object>または<json_path>がNULLの場合、NULLを返す。 -
<json_path>で指定された要素が存在しない場合、NULLを返す。 -
<json_path>で指定された要素がDOUBLEに変換できない場合、NULLを返す。 -
この動作は「cast + json_extract」と一致しており、以下と同等である:
CAST(JSON_EXTRACT(<json_object>, <json_path>) as DOUBLE)
例
-
通常のパラメータ
SELECT json_extract_double('{"id": 123.345, "name": "doris"}', '$.id');+-----------------------------------------------------------------+
| json_extract_double('{"id": 123.345, "name": "doris"}', '$.id') |
+-----------------------------------------------------------------+
| 123.345 |
+-----------------------------------------------------------------+ -
パスが存在しない場合
SELECT json_extract_double('{"id": 123.345, "name": "doris"}', '$.id2');+------------------------------------------------------------------+
| json_extract_double('{"id": 123.345, "name": "doris"}', '$.id2') |
+------------------------------------------------------------------+
| NULL |
+------------------------------------------------------------------+ -
NULLパラメータ
SELECT json_extract_double('{"id": 123.345, "name": "doris"}', NULl);+---------------------------------------------------------------+
| json_extract_double('{"id": 123.345, "name": "doris"}', NULl) |
+---------------------------------------------------------------+
| NULL |
+---------------------------------------------------------------+SELECT json_extract_double(NULL, '$.id2');+------------------------------------+
| json_extract_double(NULL, '$.id2') |
+------------------------------------+
| NULL |
+------------------------------------+ -
DOUBLEへの変換ができない場合
SELECT json_extract_double('{"id": 123, "name": "doris"}','$.name');+--------------------------------------------------------------+
| json_extract_double('{"id": 123, "name": "doris"}','$.name') |
+--------------------------------------------------------------+
| NULL |
+--------------------------------------------------------------+