MYSQL JSON - 在其同级键值上使用 WHERE 提取部分 JSON 字段



>我正在尝试根据相邻的键值提取 JSON 文档值的子集。

我的 JSON 字符串:

[
  {
    "_metadata": {
      "id": 1
    },
    "_children": [
      "A",
      "B",
      "C"
    ]
  },
  {
    "_metadata": {
      "id": 2
    },
    "_children": [
      "X",
      "Y",
      "Z"
    ]
  }
]

在设置 WHERE 子句(如 $._metadata.id="2"(时是否可以只返回[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。

相关内容

  • 没有找到相关文章

最新更新