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