説明
この関数は、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