• 售前

  • 售后

热门帖子
入门百科

postgresql的jsonb数据查询和修改的方法

[复制链接]
ffycxyw2274436 显示全部楼层 发表于 2021-8-14 15:28:45 |阅读模式 打印 上一主题 下一主题
什么是jsonb
由PostgreSQL文档定义的数据类型json和jsonb险些相同;关键的区别在于json数据存储为JSON输入文本的精确副本,而jsonb以分解的二进制情势存储数据;也就是说,不是ASCII / UTF-8字符串,而是二进制代码。
本文重要讲的是怎样为所欲为的查询和修改postgresql中jsonb格式的数据
一、查询

简单查询
  1. # 存储的是key-value格式的数据,通过指定的key获取对应的值
  2. # 使用->返回的结果是带引号的
  3. select '{"nickname": "goodspeed", "avatar": "avatar_url"}'::json->'nickname' as nickname;
  4. # 使用->>返回结果不带引号
  5. select '{"nickname": "goodspeed", "avatar": "avatar_url", "tags": ["python", "golang", "db"]}'::json->>'nickname' as nickname;
复制代码
复杂查询
  1. # {tags,0}代表查询key=‘tags',且value为数组中数组的第一个元素
  2. select '{"nickname": "gs", "avatar": "avatar_url", "tags": ["python", "golang", "db"]}'::json#>'{tags,0}' as tag;
  3. # {aa,b,0}代表查询key=‘aa',对应的value中,key=‘b'的value中,数组的第一个元素
  4. select '{"nickname": "gs", "avatar": "avatar_url", "tags": ["python", "golang", "db"], "aa":{"b": [{"c": 1}]}}'::jsonb#>>'{aa,b,0}';
复制代码
二、修改

修改
  1. jsonb_set(原数据, 需要更改的位置, 替换的值,是否不存在时新增),
  2. select jsonb_set('[{"f1":1,"f2":null},2,null,3]', '{0,f1}','[2,3,4]', false);
复制代码
到此这篇关于postgresql的jsonb数据查询和修改的文章就先容到这了,更多干系postgresql jsonb数据查询和修改内容请搜刮草根技术分享以前的文章或继续欣赏下面的干系文章盼望各人以后多多支持草根技术分享!

帖子地址: 

回复

使用道具 举报

分享
推广
火星云矿 | 预约S19Pro,享500抵1000!
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

草根技术分享(草根吧)是全球知名中文IT技术交流平台,创建于2021年,包含原创博客、精品问答、职业培训、技术社区、资源下载等产品服务,提供原创、优质、完整内容的专业IT技术开发社区。
  • 官方手机版

  • 微信公众号

  • 商务合作