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