我有一个表,MySQL版本= 5.7
Table_1 <-
ID Json
IR-1 {Json}
IR-2 {Json}Json字符串示例
{
"flag": false,
"resp": "RTUI",
"mean": "r-2",
"details": {
"product": "IR JAD",
"status": "failed",
"datetime": "26/09/2017"
}
}我想以下面提到的格式获取字段resp、mean和status。我使用了下面提到的查询,但它只在获取“失败”格式的status时起作用。
select ID,
json_extract(Json, '$.*.resp') AS resp,
json_extract(Json, '$.*.mean') AS mean,
json_extract(Json, '$.*.status') AS status
from Table_1
where ID in ('IR-1','IR-2');所需输出:
ID resp mean status
IR-1 RTUI r-2 failed发布于 2020-05-08 15:58:48
顶级属性不应该使用.*。
此外,显式指定details属性可能比使用wildcard访问嵌套的status属性更好。
select ID,
json_extract(Json, '$.resp') AS resp,
json_extract(Json, '$.mean') AS mean,
json_extract(Json, '$.details.status') AS status
from Table_1
where ID in ('IR-1','IR-2');https://stackoverflow.com/questions/61674551
复制相似问题