首页 >数据库 >mysql教程 >如何从 MySQL 中的嵌套 JSON 数组查询'骑士”的强度值?

如何从 MySQL 中的嵌套 JSON 数组查询'骑士”的强度值?

Mary-Kate Olsen
Mary-Kate Olsen原创
2024-10-29 05:20:02304浏览

How to Query Strength Value of a

按键查询嵌套 JSON 数组

在 MySQL 中,您可以使用 JSON_TABLE 的组合从嵌套 JSON 数组中检索特定值() 函数和 WHERE 子句。

考虑以下 JSON 数组:

<code class="json">[
    {"Race": "Orc", "strength": 14},
    {"Race": "Knight", "strength": 7}
]</code>

要检索骑士的力量,您可以使用以下查询:

<code class="sql">SELECT j.strength
FROM mytable,
JSON_TABLE(mycol, '$[*]' COLUMNS (
    race VARCHAR(10) PATH '$.Race',
    strength INT PATH '$.strength'
)) AS j
WHERE j.race = 'Knight'</code>

此查询使用 JSON_TABLE() 函数从 JSON 数组创建一个虚拟表,其中每个属性都有列。然后使用 WHERE 子句根据“Race”属性过滤结果。

优点和限制

使用 JSON_TABLE() 具有以下几个优点:

  • 允许从 JSON 文档中选择和投影特定属性。
  • 可用于将条件应用于 JSON 数据中的字段。

但是,它也有一些限制:

  • 需要在查询中指定属性字段,如果数据结构未知,这可能不可行。
  • 在处理深度时可能会导致复杂的查询嵌套或非结构化 JSON 文档。

替代方法

如果数据结构未知或频繁更改,另一种方法是使用 JSON_SEARCH() 函数找到所需值的路径,然后使用路径运算符提取该值。但是,此方法不允许像 JSON_TABLE() 那样轻松地进行选择或投影。

以上是如何从 MySQL 中的嵌套 JSON 数组查询'骑士”的强度值?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn