在mysql中通过key在json中查找

2023-12-05

我有一个 json,我想提取一个键的值。我知道钥匙名称,但不知道位置。我的 json 很复杂,在 mysql 中看起来像这样:

set @jsonstr:='
{
    "glossary": {
        "title": "example glossary",
        "GlossDiv": {
            "title": "S",
            "GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
                    "SortAs": "SGML",
                    "GlossTerm": "Standard Generalized Markup Language",
                    "Acronym": "SGML",
                    "Abbrev": "ISO 8879:1986",
                    "GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
                        "GlossSeeAlso": ["GML", "XML"]
                    },
                    "GlossSee": "markup"
                }
            }
        }
    }
}
';

例如,我想搜索关键字“Acronym”。我想要完整路径/或直接它的值[“SGML”],以便我可以进一步处理它。

我正在执行以下操作,它返回 null

select JSON_Search(@jsonstr,'all', '%Acronym%')

我的要求:

  • 我的 json 中可能有多个“缩写词”,我只想要所有这些。
  • 我没有价值部分,我只知道关键
  • 我的 json 很复杂,包含嵌套对象和数组

Edit

有效,所以我现在尝试使用更新后的 json,它看起来像

    set @jsonstr:='
{
    "glossary": {
        "title": "example glossary",
        "GlossDiv": {
            "title": "S",
            "GlossList": {
                "GlossEntry": {
                    "ID": "SGML",
                    "SortAs": "SGML",
                    "GlossTerm": "Standard Generalized Markup Language",
                    "Acronym": "SGML",
                    "Abbrev": "ISO 8879:1986",
                    "GlossDef": {
                        "para": "A meta-markup language, used to create markup languages such as DocBook.",
                        "GlossSeeAlso": ["GML", "XML"],
                        "Acronym" : "another value"
                    },
                    "GlossSee": "markup"
                }
            }
        }
    }
}
';

所以现在查询

select JSON_EXTRACT(@jsonstr,'$**.Acronym')

[“SGML”,“另一个值”]

但这样我将无法获取具有我的目标密钥的各个位置的路径。

Ques :如果我可以得到一个表,其中“关键位置”作为第一列,它们各自的值在第二列中。


我想你想要这个查询:

SELECT JSON_EXTRACT(@jsonstr,'$**.Acronym')

JSON_Search 查找 JSON 对象中的值。您知道要查找的密钥的名称,因此您所需要做的就是使用路径,对此进行了解释https://dev.mysql.com/doc/refman/5.7/en/json-path-syntax.html示例位于https://dev.mysql.com/doc/refman/5.7/en/json-search-functions.html#function_json-search

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在mysql中通过key在json中查找 的相关文章

  • 重新启动我的 sql 时,jenkins 失败“sudo:不存在 tty,并且未指定 Askpass 程序 抱歉,请重试。”

    我刚刚配置了 jenkins 在预构建步骤中我尝试重新启动 jenkins 但最终出现以下错误 Commencing build of Revision c5b9f8daac092efc5396d80f568a2cf89ae8b697 or
  • sed 替换 json 对象中键的值

    我想做什么 给定一个 json 事件文件 我想通过关键字定位特定事件 然后将该事件中的键值替换为 这必须使用 sed 来完成 Splunk 转发问题 我不会用细节来烦你 事件示例 message we have a response fro
  • MySQL:为什么 IN 子句中的第 5 个 ID 会极大地改变查询计划?

    给出以下两个查询 Query 1 SELECT log id FROM log WHERE user id IN 188858 188886 189854 203623 204072 and type in 14 15 17 ORDER B
  • Python MySQL 模块

    我正在开发一个需要与 MySQL 数据库交互的 Web 应用程序 但我似乎找不到任何真正适合 Python 的模块 我特别寻找快速模块 能够处理数十万个连接 和查询 所有这些都在短时间内完成 而不会对速度产生重大影响 我想我的答案将是游戏领
  • ActiveSupport::JSON 解码哈希丢失符号

    我正在尝试序列化和反序列化哈希 当散列被解除序列化时 密钥被解除符号化 例如不是更多 一 而是 一 从 Rails 控制台 gt gt h one gt 1 two gt two one gt 1 two gt two gt gt j Ac
  • 尝试在 Mac OSX 上的 virtualenv 和 MySQL 中安装 Django CMS 时出错

    当我尝试使用 virutalenv 安装带有 MySQL 的 django CMS 时 出现以下错误 RuntimeError maximum recursion depth exceeded Users ethan Sites env b
  • 如何使用 *non-case* 类通过 Scala 从 JSON 反序列化?

    我正在编写一个 Scala 应用程序 需要序列化和反序列化 JSON 某些 JSON 对象具有超过 22 个字段 因此我无法使用案例类 并且也无法更改格式 我找到的所有 Scala JSON 库都只能 轻松地 与案例类一起使用 而不是与普通
  • 有什么方法可以在MySQL中的表名位置使用变量吗?

    我想在表名称位置使用变量 例如 SELECT FROM targetTableName 然而它会出错 有什么方法可以在MySQL中的表名位置使用变量吗 您显示的查询不起作用有两个原因 插入到查询中的用户定义变量将被视为使用字符串文字 而不是
  • MySQL 行级锁

    我不确定行级锁是如何工作的 但这是我的问题 我有一个表 T id int balance int engine InnoDB 我想锁定 ID 1 的行 所以我开始一个像这样的事务 start transaction select from
  • Android 和 Facebook SDK:从 /me/picture 图形调用中解码图片

    编辑 Anwser 在这篇文章的末尾 我正在尝试通过内置的 Facebook SDK 功能获取 Facebook 用户的个人资料图片Request 我正在使用一个 me picture调用获取个人资料图片并将其转换为Bitmap 调用工作正
  • 保护存储过程

    我想知道是否有一种方法可以对某些用户隐藏存储过程的文本 我正在使用 MySQL 5 1 48 和 Net Connector 6 2 3 以及 Visual Studio 2008 SP1 我在 MySQL 中有两个用户 一个是 root
  • MySQL查看数据是否为NULL

    我需要在 Select 中放置一个 Case 来检查我添加到视图中的数据是否为 NULL 在这种情况下我希望它只输入零 或者不输入零 你的意思是这样的吗 SELECT IF field IS NULL 0 field 还有 IFNULL S
  • MYSQL 中当前行上日期之前(并包括该日期)的所有行的总和

    重要的是要知道在查询期间日期是未知的 因此我不能只硬编码 WHERE 子句 这是我的桌子 Date ID Customer Order Count 20150101 Jones 6 20150102 Jones 4 20150103 Jon
  • 将歌词存储在 MySQL 数据库中

    我想知道在 mysql 数据库中存储音乐 歌词 的最佳方式是什么 以及用于此目的的设置是什么 另外 我想要表格来存储断线 我正在考虑使用 指示新行并使用 php 替换字符串 我不知道从哪里开始 或者使用什么参数 varchar int 我知
  • 在评论中查找不同风格的日期

    我还有一个问题要问preg match 我有一个表 其中评论的日期写在评论本身内 手动 现在我需要提取该日期并将其放置在不同的列中 我发现评论和日期的样式如下 id warning sent warning date 6109 2011 0
  • 在“GROUP BY”子句中重用选择表达式的结果?

    在 MySQL 中 我可以有这样的查询 select cast from unixtime t time Y m d H 00 as datetime as timeHour from some table t group by timeH
  • 如何在 Objective C 中创建 json 字符串?

    我必须动态生成一个 json 字符串并需要发送到服务器 有谁知道如何使用NSJSONSerialization 下面是我的字符串 surveyid Survey1 responsetime dd mm yyyy hh mm ss locat
  • 如何使用默认约束为mysql中的列创建随机数?

    DEFAULT 约束在接受字符串或当前日期值方面没有问题 我需要的是一个约束 每次创建实体时都会创建一个随机的 4 位数字 我尝试了以下代码 但它返回语法错误 ALTER TABLE client number ADD 代码 INT 4 D
  • 自动递增和最后插入 ID

    我在用着AUTO INCREMENT我想获取插入行的 ID 以便我可以使用更新另一个表ID作为两个表之间的公共字段 我明白LAST INSERT ID会排在最后ID 然而 我担心的是 数据库被许多用户同时访问 因此 可能有另一个进程访问该表
  • 如何在mysql中设置“performance_schema on”?

    我想转performance schemaON 在 mysql 中收集统计信息 我怎样才能实现这个目标 以下指南是特定于 Linux 的 但应该很容易适用于 Windows 您必须检查 mysql 服务器二进制文件是否已编译为支持它 mys

随机推荐

  • Tensorflow:我的准确性出现问题

    我只是运行一个简单的代码 并希望在训练后获得准确性 我加载了保存的模型 但是当我想要获得准确性时 却出现了问题 为什么 coding utf 8 from color 1 import read and decode get batch g
  • 从代码中将方向设置为纵向

    我知道我可以限制清单文件的方向 像这样 android screenOrientation portrait 但是可以通过代码设置方向吗 例如 可以通过清单和代码将活动设置为全屏this getWindow setFlags WindowM
  • 动态添加项目到 JComboBox

    Vector comboBoxItems new Vector DefaultComboBoxModel model ComboBox Items have gotten from Data Base initially model new
  • Java中Set和SortedSet接口之间的逻辑不一致[关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我注意到 Java 中的
  • 使用pivot_longer将水平格式重塑为长格式

    我正在尝试使用之前提供的相同代码将数据重塑为长格式而不是宽格式link但多次尝试修改后还是不行names pattern pre post 我的数据样本是 data1 lt read table text Serial ID pre EDV
  • 每次调用 NSMutableArray 的 count 方法时,它实际上都会对项目进行计数吗?

    由于可可设计模式 实例方法的名称count in NSMutableArray是不明确的 它可以返回一个保存的变量count 或者它可以在每次调用时计算数组中的项目 然后返回该值 cocoa 规定一个方法只返回变量的值foo be foo
  • 使用Azure ARM模板通过Sql Filter创建服务总线主题订阅?

    我已经能够弄清楚如何设置一个 Azure ARM 模板来创建 管理 Azure 服务总线命名空间 主题和订阅以接收所有消息 然而 关于 ARM Tempates 的 Microsoft 文档仍然非常缺乏 我无法弄清楚如何在模板中为订阅定义
  • 模板方法的未定义参考错误[重复]

    这个问题在这里已经有答案了 在过去的一个半小时里 这让我发疯 我知道这是一件小事 但找不到问题所在 当然 周五下午下着雨 这一事实也无济于事 我定义了以下类 它将保存从文件中读取的配置参数 并让我从程序中访问它们 class VAConfi
  • 斯威夫特继续不工作?

    我的 Swift segue 根本不起作用 也没有抛出任何错误 断点向我显示应用程序降落在这一行 但没有任何反应 self performSegueWithIdentifier SignupSegue sender self 该代码块是 F
  • 将参数传递给 dplyr summarise 函数

    我正在尝试使用 dplyr 中的汇总函数来使用两个参数函数来计算摘要统计信息 该函数从连接的数据库传递表和字段名称 不幸的是 一旦我用另一个函数包装汇总函数 结果就不正确 端表是一个不会迭代每一行的数据框 我将在下面显示输入 输出 汇总统计
  • 从 Lasagne(Python 深度神经网络框架)获取输出

    我从 Lasagne 的官方 github 加载了 mnist conv py 示例 在此 我想预测一下我自己的例子 我看到 lasagne layers get output 应该处理官方文档中的 numpy 数组 但它不起作用 我不知道
  • 如何在不指定缩放级别(或 LevelOfDetails)的情况下获取图块计数、图块 X、图块 Y 详细信息?

    这是参考 Google Tile 地图或 Bing 地图 是否可以在不通过任何类型的内部计算指定缩放级别 或 LevelOfDetails 的情况下获取图块计数 图块 X 图块 Y 详细信息 客户只需提供坐标 P1 和 P2 并要求提供图块
  • 无法读取 null 的属性“getSheetByName”

    function sortResponses var Sheets SpreadsheetApp getActiveSpreadsheet getSheetByName Fall 01 sheet sort 3 false 我有一张名为Fa
  • RESTAdapter 初始化后添加标头

    我正在尝试添加一个Authorization适配器初始化和使用后 我的适配器请求的标头 我可以在创建时以静态方式添加标题ApplicationAdapter 但我似乎无法让它在后续 REST 调用中使用标头 我正在尝试这个 var auth
  • 使用 AntBuilder 在 Groovy 中压缩文件/目录

    我正在尝试使用 AntBuilder 压缩 Groovy 中的文件和目录 我有以下代码 def ant new AntBuilder ant zip basedir Testing destfile file zip includes fi
  • ITextSharp 中的页眉和页脚

    我知道这个问题已经被问过一千次了 但我还没有找到直接的答案 我对 ITextSharp 比较陌生 所以请像在和幼儿说话一样解释 如何将简单的纯文本页眉和页脚添加到我正在创建的文档中 我正在使用以下代码创建一个简单的 pdf 文档 void
  • 使 Codeigniter 网站多语言化的最佳方法。从 lang 数组调用取决于 lang 会话?

    我正在研究几个小时 但我找不到任何清晰 有效的方法来实现它 我有一个英文版的 codeigniter 基础网站 现在我必须添加波兰语 根据访问者的选择将我的网站设置为两种语言的最佳方法是什么 有没有办法为每种语言创建数组文件并在视图文件中调
  • ASP Classic - 类型不匹配:'CInt' - 简单问题

    ASP classic 中存在类型转换问题 这是我的代码 Set trainingCost Server CreateObject ADODB Recordset strSQL3 SELECT cost1 FROM tblMain WHER
  • 有没有办法将 MongoDB shell 输出“漂亮”地打印到文件中?

    具体来说 我想打印 mongodb 的结果find 到一个文件 JSON 对象太大 因此我无法使用 shell 窗口大小查看整个对象 shell 提供了一些不错但隐藏的功能 因为它是一个交互式环境 当您通过 mongo Commands j
  • 在mysql中通过key在json中查找

    我有一个 json 我想提取一个键的值 我知道钥匙名称 但不知道位置 我的 json 很复杂 在 mysql 中看起来像这样 set jsonstr glossary title example glossary GlossDiv titl