在 MySQL 中查询 JSON 数组:使用 JSON_TABLE() 的解决方案
您可以使用 JSON_SEARCH 等 SQL 函数从 JSON 数组中检索特定值,但这仅提供到所需节点的路径。要将路径搜索与实际值检索结合起来,您可以使用 JSON_TABLE() 函数。
JSON_TABLE() 将 JSON 文档转换为虚拟表,允许您对其元素应用 WHERE 和 SELECT 等 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'
此查询将返回骑士种族的强度值。但是,它要求您显式定义属性名称及其路径,当数据结构是动态或未定义时,这可能不可行。
值得注意的是,使用 JSON_TABLE() 涉及将 JSON 文档转换为每个查询都使用虚拟表,如果数据很大,这可能会影响性能。此外,这种方法要求您指定要搜索的属性字段,这限制了它在完全未定义的数据结构中的使用。
以上是如何在 MySQL 中查询 JSON 数组:可以使用 JSON_TABLE() 从 JSON 数组中检索特定值吗?的详细内容。更多信息请关注PHP中文网其他相关文章!