MYSQL JSON - 在其同级键值上使用 WHERE 提取部分 JSON 字段
MYSQL JSON - extracting part of JSON field using WHERE on its sibling key value
我正在尝试根据相邻键值提取 JSON 文档值的子集。
我的 JSON 字符串:
[
{
"_metadata": {
"id": 1
},
"_children": [
"A",
"B",
"C"
]
},
{
"_metadata": {
"id": 2
},
"_children": [
"X",
"Y",
"Z"
]
}
]
在设置像 $._metadata.id="2"
这样的 WHERE 子句时,是否可以 return 仅 [X,Y,Z]
?
谢谢!
一个选项是:
SELECT
`der`.`_children`
FROM
JSON_TABLE(
@`json`,
'$[*]'
COLUMNS(
`id` INT PATH '$._metadata.id',
`_children` JSON PATH '$._children'
)
) `der`
WHERE
`der`.`id` = 2;
见dbfiddle。
我正在尝试根据相邻键值提取 JSON 文档值的子集。
我的 JSON 字符串:
[
{
"_metadata": {
"id": 1
},
"_children": [
"A",
"B",
"C"
]
},
{
"_metadata": {
"id": 2
},
"_children": [
"X",
"Y",
"Z"
]
}
]
在设置像 $._metadata.id="2"
这样的 WHERE 子句时,是否可以 return 仅 [X,Y,Z]
?
谢谢!
一个选项是:
SELECT
`der`.`_children`
FROM
JSON_TABLE(
@`json`,
'$[*]'
COLUMNS(
`id` INT PATH '$._metadata.id',
`_children` JSON PATH '$._children'
)
) `der`
WHERE
`der`.`id` = 2;
见dbfiddle。