JSON_EXTRACT 提取jsonarray下某個字段的所有值
时间: 2024-02-03 17:03:09 浏览: 86
java提取json中某个数组的所有值方法
可以使用JSON_EXTRACT函数的[*]通配符来提取jsonarray下某个字段的所有值。例如,如果有以下JSON数据:
```
{
"fruits": [
{
"name": "apple",
"color": "red"
},
{
"name": "banana",
"color": "yellow"
},
{
"name": "orange",
"color": "orange"
}
]
}
```
如果想要提取所有水果的名称,可以使用以下SQL语句:
```
SELECT JSON_EXTRACT(json_data, '$.fruits[*].name') AS fruit_names FROM my_table;
```
这将返回一个结果集,其中包含每个水果的名称,如下所示:
```
| fruit_names |
|--------------------------------|
| ["apple", "banana", "orange"] |
```
请注意,fruit_names列是一个包含所有水果名称的JSON数组。如果需要将其转换为单独的行,可以使用UNNEST函数,如下所示:
```
SELECT fruit_name
FROM my_table,
UNNEST(JSON_EXTRACT(json_data, '$.fruits[*].name')) AS fruit_name;
```
这将返回以下结果集:
```
| fruit_name |
|------------|
| "apple" |
| "banana" |
| "orange" |
```
阅读全文