跳到主要内容

JSON_EXTRACT

描述

该函数用于从 JSON 文档中指定的路径返回数据。如果任何参数为 NULL 或在文档中没有定位到路径,则返回 NULL

语法

JSON_EXTRACT(json_doc, path[, path] ...)

说明

参数 json_doc 用于指定 JSON 文档,path 为路径参数。如果参数 json_doc 不是有效的 JSON 文档或任意 path 参数不是有效的路径表达式,则会发生错误。

返回值由 path 参数的所有匹配值组成。如果这些参数返回多个值,则匹配值将自动包裹为一个数组,顺序与生成它们的路径相对应。否则,返回单个匹配值。

示例

SELECT JSON_EXTRACT('[10, 20, [30, 40]]', '$[0]');
+--------------------------------------------+
| JSON_EXTRACT('[10, 20, [30, 40]]', '$[0]') |
+--------------------------------------------+
| 10 |
+--------------------------------------------+
1 row in set (0.001 sec)

SELECT JSON_EXTRACT('[10, 20, [30, 40]]', '$[2][1]');
+-----------------------------------------------+
| JSON_EXTRACT('[10, 20, [30, 40]]', '$[2][1]') |
+-----------------------------------------------+
| 40 |
+-----------------------------------------------+
1 row in set (0.001 sec)

SELECT JSON_EXTRACT('{"person.name": "John", "age": 25}', '$."person.name"');
+-----------------------------------------------------------------------+
| JSON_EXTRACT('{"person.name": "John", "age": 25}', '$."person.name"') |
+-----------------------------------------------------------------------+
| "John" |
+-----------------------------------------------------------------------+
1 row in set (0.001 sec)