PostgreSQL中的jsonb类型

jsonb操作符

  • @>判断某个jsonb类型的字段中是否包含某个值
    例: where data_json @> {"name":"tag","value":"val1"}

  • ->通过key获取json或jsonb中的元素,返回值是json或jsonb

    1. json由数组格式构成

      '[{"key1":"val1","key2":"val2"},{"key3":"val3"}]'

      sqldata_json -> 1会得到 {"key3":"val3"}

    2. json由非数组格式构成

      {“key1”:“val1”, “key2”:“val2”}

      sqldata_json -> 'key1'会得到 val1
      例如:select * from table1 where data_json ->> 'key1' like '%va%'

  • ->>通过key获取json或jsonb中的元素,并转换成字符串,返回值是文本,其他同->
    例如:在这里插入图片描述

  • #>获取json子元素,返回json

  • #>>获取json子元素,返回文本

jsonb操作函数

https://www.postgresql.org/docs/9.4/functions-json.html

案例

将表中json类型的字段中的指定key对应的value值更新为同记录的其他字段的值

-- 将table_a表中的data_json字段(jsonb类型)中 key为address对应的value值更新为  other_column 字段的值
update table_a
set data_json = data_json || concat('{"address"":', "other_column", '"}')::jsonb where <condition>;

更新前

other_column(varchar)data_json(jsonb)
航海路{“address”:“北京路”, “mobile”:“111111111”, “num”:89}

更新后

other_column(varchar)data_json(jsonb)
航海路{“address”:“航海路", “mobile”:“111111111”, “num”:89}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值