説明
この関数は、JSONドキュメント内の指定されたパスからデータを返します。いずれかのパラメータがNULLである場合、またはドキュメント内でパスが見つからない場合は、NULL返します。
構文
JSON_EXTRACT(json_doc, path[, path] ...)
説明
パラメータjson_docはJSONドキュメントを指定するために使用され、pathはパスパラメータです。パラメータjson_docが有効なJSONドキュメントではない場合、または任意のpathパラメータが有効なパス式ではない場合、エラーが発生します。
戻り値は、pathパラメータのすべてのマッチング値で構成されます。これらのパラメータが複数の値を返す場合、マッチング値は自動的に配列としてラップされ、その順序はそれらを生成したパスに対応します。そうでない場合は、単一のマッチング値が返されます。
例
obclient> SELECT JSON_EXTRACT('[10, 20, [30, 40]]', '$[0]');
+--------------------------------------------+
| JSON_EXTRACT('[10, 20, [30, 40]]', '$[0]') |
+--------------------------------------------+
| 10 |
+--------------------------------------------+
1 row in set
obclient> SELECT JSON_EXTRACT('[10, 20, [30, 40]]', '$[2][1]');
+-----------------------------------------------+
| JSON_EXTRACT('[10, 20, [30, 40]]', '$[2][1]') |
+-----------------------------------------------+
| 40 |
+-----------------------------------------------+
1 row in set
obclient> SELECT JSON_EXTRACT('{"person.name": "John", "age": 25}', '$."person.name"');
+-----------------------------------------------------------------------+
| JSON_EXTRACT('{"person.name": "John", "age": 25}', '$."person.name"') |
+-----------------------------------------------------------------------+
| "John" |
+-----------------------------------------------------------------------+
1 row in set