MySQL JSON - 如何从命名键/值对数组中提取特定“键”的“值” [重复]

MySQL JSON - How to extract a "value" for a particular "Key" from an array of Named Key/Value Pairs [duplicate]

提问人:bborup 提问时间:11/7/2023 最后编辑:Bill Karwinbborup 更新时间:11/7/2023 访问量:35

问:

给定一个包含命名键/值对数组的 JSON 路径,如何提取“名称”对的“值”:

# JSON_PRETTY(JSON_EXTRACT(data, '$.Tags'))
[
    {
        "Key" : "Environment",
        "Value" : "Production"
    },
    {
        "Key" : "Description",
        "Value" : "Production Message Broker"
    },
    {
        "Key" : "Version",
        "Value" : "1"
    },
    {
        "Key" : "Application Role",
        "Value" : "Message Broker"
    },
    {
        "Key" : "Reserved Instance",
        "Value" : "Y - 3 year"
    },
    {
        "Key" : "Patch Group",
        "Value" : "Saturday9am"
    },
    {
        "Key" : "Name",
        "Value" : "mb023323"
    }
]

IE,如何获取“名称”“值”?本例中的“MB023323”?

我查看了许多文章和书籍,但找不到满足我需求的查询。(当然,我可能只是不明白如何正确指定 JSON 路径。

数组键 mysql-json

评论

0赞 Shadow 11/7/2023
您的 json 结构非常复杂,因为它基本上将数据存储在键值对中。您在这里所做的不是键值对,但您需要找到一个 json 对象,其键属性设置为 name 并检索其 value 属性的值。
0赞 derpirscher 11/7/2023
好吧,也许您可以分享您已经尝试过的内容,以便我们找到您方法中的错误。或者你可以阅读 stackoverflow.com/questions/30680515/...,它解决了一个非常相似的问题(虽然不是在MySQL的上下文中),但我认为MySQL仍然无法支持JSON路径
0赞 Bill Karwin 11/7/2023
@derpirscher MySQL 对 JSON 路径的支持有限,因此在这种情况下无济于事。查看 stackoverflow.com/a/66803992/20860
0赞 bborup 11/7/2023
感谢您的所有回复。我同意@Shadow,这很复杂,但这就是它交付给我们的方式。Bill,我假设你的回答就是答案,MySQL只是不支持这种级别的解析。再次感谢。

答: 暂无答案