JSON_EXTRACT_STRING
説明
JSON_EXTRACT_STRING は JSON オブジェクトから <json_path> で指定されたフィールドを抽出し、STRING 型に変換します。
構文
JSON_EXTRACT_STRING(<json_object>, <json_path>)
パラメータ
<json_object>: JSON型、抽出元の対象パラメータ。<json_path>: String型、対象JSONから対象要素を抽出するためのJSONパス。
戻り値
Nullable(STRING) 抽出されたSTRING値を返します。場合によってはNULLを返します
使用上の注意
-
<json_object>または<json_path>がNULLの場合、NULLを返します。 -
<json_path>で指定された要素が存在しない場合、NULLを返します。 -
<json_path>で指定された要素がSTRINGに変換できない場合、NULLを返します。 -
この動作は「cast + json_extract」と一致しており、以下と等価です:
CAST(JSON_EXTRACT(<json_object>, <json_path>) as STRING)
<json_path>で指し示されるオブジェクトがSTRING型でなくても、STRING型への変換をサポートしている限り、変換された値を取得できます。
5. ここで返されるSTRINGには二重引用符(")は含まれません。
6. JSONオブジェクト内のnull値の場合、結果はNULLではなく文字列"null"になります。
要素がnullかどうかを確認したい場合は、関数JSON_EXTRACT_ISNULLを使用してください。
Examples
-
通常のパラメータ
SELECT json_extract_string('{"id": 123, "name": "doris"}', '$.name');+---------------------------------------------------------------+
| json_extract_string('{"id": 123, "name": "doris"}', '$.name') |
+---------------------------------------------------------------+
| doris |
+---------------------------------------------------------------+ -
パスが存在しない場合
SELECT json_extract_string('{"id": 123, "name": "doris"}', '$.name2');+----------------------------------------------------------------+
| json_extract_string('{"id": 123, "name": "doris"}', '$.name2') |
+----------------------------------------------------------------+
| NULL |
+----------------------------------------------------------------+ -
NULLパラメータ
SELECT json_extract_string('{"id": 123, "name": "doris"}', NULl);+-----------------------------------------------------------+
| json_extract_string('{"id": 123, "name": "doris"}', NULl) |
+-----------------------------------------------------------+
| NULL |
+-----------------------------------------------------------+SELECT json_extract_string(NULL, '$.id2');+------------------------------------+
| json_extract_string(NULL, '$.id2') |
+------------------------------------+
| NULL |
+------------------------------------+ -
他の型がSTRINGに変換される場合
SELECT json_extract_string('{"id": 123, "name": "doris"}','$.id');+------------------------------------------------------------+
| json_extract_string('{"id": 123, "name": "doris"}','$.id') |
+------------------------------------------------------------+
| 123 |
+------------------------------------------------------------+ -
Null値は、NULLではなく文字列"null"に変換されます
SELECT json_extract_string('{"id": null, "name": "doris"}','$.id');+-------------------------------------------------------------+
| json_extract_string('{"id": null, "name": "doris"}','$.id') |
+-------------------------------------------------------------+
| null |
+-------------------------------------------------------------+