加入收藏 | 设为首页 | 会员中心 | 我要投稿 焦作站长网 (https://www.0391zz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

postgresql实现整改jsonb字段中的某个值

发布时间:2021-10-09 16:23:20 所属栏目:外闻 来源:互联网
导读:这篇文章主要介绍了postgresql 实现修改jsonb字段中的某一个值操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧。 我就废话不多说了,大

||jsonb连接两个json对象,组成一个新的json对象select '["a", "b"]'::jsonb || '["c", "d"]'::jsonb;["a", "b", "c", "d"]

 

-text删除左侧json对象中键为text的键值对select '{"a": "b"}'::jsonb - 'a';{}

 

-integer删除数组指定索引处的元素,如果索引值为负数,则从右边计算索引值。

 

如果最上层容器内不是数组,则抛出错误。select '["a", "b"]'::jsonb - 1;["a"]

 

#-text[]删除指定路径下的域或元素(如果是json数组,且整数值是负的,

 

则索引值从右边算起)select '["a", {"b":1}]'::jsonb #- '{1,b}';["a", {}]

 

json创建函数

 

函数描述示例结果

 

to_json(anyelement)

 

to_jsonb(anyelement)返回json或jsonb类型的值。数组和复合被转换(递归)成数组和对象。另外除数字、

 

布尔、NULL值(直接使用NULL抛出错误)外,其他标量必须有类型转换。(此处请参考原文)select to_json('3'::int);3

 

array_to_json(anyarray

 

[, pretty_bool])以JSON数组返回该数组。PostgreSQL多维数组变成JSON数组中的数组。

 

如果pretty_bool 为真,则在维度1元素之间添加换行。select array_to_json('{{1,5},{99,100}}'::int[],true);[[1,5], +

 

[99,100]]

 

row_to_json(record [, pretty_bool])以JSON对象返回行。如果pretty_bool 为真,则在级别1元素之间添加换行。select row_to_json(row(1,'foo'),true);{"f1":1, +

 

"f2":"foo"}

 

json_build_array(VARIADIC "any")

 

jsonb_build_array(VARIADIC "any")建立一个由可变参数列表组成的不同类型的JSON数组select json_build_array(1,2,'3',4,5);[1, 2, "3", 4, 5]

 

json_build_object(VARIADIC "any")

 

jsonb_build_object(VARIADIC "any")建立一个由可变参数列表组成的JSON对象。参数列表参数交替转换为键和值。select json_build_object('foo',1,'bar',2);{"foo" : 1, "bar" : 2}

 

json_object(text[])

 

jsonb_object(text[])根据text[]数组建立一个json对象,如果是一维数组,则必须有偶数个

 

元素,元素交替组成键和值。如果是二维数组,则每个元素必须有2个元素,可以组成键值对。select json_object('{a, 1, b, "def", c, 3.5}');

 

select json_object('{{a, 1},{b, "def"},{c, 3.5}}');{"a" : "1", "b" : "def", "c" : "3.5"}

 

json_object(keys text[], values text[])

 

jsonb_object(keys text[], values text[])分别从两组text[]中获取键和值,与一维数组类似。select json_object('{a, b}', '{1,2}');{"a" : "1", "b" : "2"}

 

json处理函数

 

函数返回类型描述示例结果

 

json_array_length(json)

 

jsonb_array_length(jsonb)int返回Json数组最外层元素个数select json_array_length('[1,2,3,{"f1":1,"f2":[5,6]},4]');5

 

json_each(json)

 

jsonb_each(jsonb)setof key text, value json

 

setof key text, value jsonb将最外层Json对象转换为键值对集合select json_each('{"a":"foo", "b":"bar"}');(a,"""foo""")

 

(b,"""bar""")

 

json_each_text(json)

 

(编辑:焦作站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

推荐文章
    热点阅读