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 |
+-----------------------------------------------------------+