微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

当搜索到的值与特定键的数据匹配时,如何从mysql的JSON对象中提取键名称?

如何解决当搜索到的值与特定键的数据匹配时,如何从mysql的JSON对象中提取键名称?

我正在尝试从MysqL的json对象获取密钥名称和值,并限制出现特定密钥的次数

这是我到目前为止所做的:

表结构

id  history

历史记录具有以下记录

{“ user”:“ a”,“ msg”:“ Hello ba”}

{“ user”:“ ba”,“ msg”:“再见”}

{“ user”:“ bb”,“ msg”:“ Hello CCa”}

{“ user”:“ bc”,“ msg”:“ Hello ka”}

查询

-- @num := if(@table_name = `table_name`,@num + 1,1) as row_number,--  @table_name := `table_name` as dummy 
     
SELECT history,JSON_EXTRACT(history,"$.user"),JSON_KEYS(history)
     FROM chat_history
     WHERE JSON_EXTRACT(history,"$.user") like '%a%' or JSON_EXTRACT(history,"$.msg") like '%a%'

我现在正在得到什么:

enter image description here

我期待什么

一个查询结果

enter image description here

第二个查询结果(将每个键限制为2个项)

enter image description here

正在寻找您的帮助。 谢谢

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。