に最終更新
JSON_EXTRACT_BOOL
説明
JSON_EXTRACT_BOOL は JSON オブジェクトから <json_path> で指定したフィールドを抽出し、BOOLEAN 型に変換します。
構文
JSON_EXTRACT_BOOL(<json_object>, <json_path>)
パラメータ
<json_object>: 抽出元となる JSON 型のパラメータです。<json_path>: 対象の JSON から要素を抽出するための String 型の 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 |
+------------------------------------------------------------+