JSON_EXTRACT_STRING
デスクリプション
JSON_EXTRACT_STRINGはJSONオブジェクトから<json_path>で指定されたフィールドを抽出し、STRING型に変換します。
Syntax
JSON_EXTRACT_STRING(<json_object>, <json_path>)
パラメータ
<json_object>: JSON型、抽出元となる対象パラメータ。<json_path>: String型、対象JSONから目的の要素を抽出するためのJSONパス。
Return Value
Nullable(STRING) 抽出されたSTRING値を返し、場合によってはNULLを返します
Usage 注釈
-
<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関数を使用してください。
例
-
通常のパラメータ
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 |
+-------------------------------------------------------------+