json pgsql 函数 操作_JSON 函数和操作符

表 9-40显示了可以用于这两个JSON

(参阅第 8.14 节)数据类型的操作符。

表 9-40. json和jsonb操作符操作符右操作数的类型描述示例示例结果->int获取JSON数组元素(索引从0开始)'[{"a":"foo"},{"b":"bar"},{"c":"baz"}]'::json->2{"c":"baz"}

->text通过秘钥获取JSON对象字段'{"a": {"b":"foo"}}'::json->'a'{"b":"foo"}

->>int获取JSON数组元素为text'[1,2,3]'::json->>23

->>text获取JSON对象字段为text'{"a":1,"b":2}'::json->>'b'2

#>text[]在指定的路径获取JSON对象'{"a": {"b":{"c": "foo"}}}'::json#>'{a,b}'{"c": "foo"}

#>>text[]在指定的路径获取JSON对象为text'{"a":[1,2,3],"b":[4,5,6]}'::json#>>'{a,2}'3

注意:

有json和jsonb类型的这些操作符的并行变体。

字段/元素/路径提取操作符返回和它们的左侧输入相同的类型

(不管是json还是jsonb),

除了那些指定返回text类型的操作符,它们强制值为文本类型。

如果JSON输入的结构没有正确匹配要求,那么字段/元素/路径提取操作符返回NULL,

而不是失败;例如,如果不存在这样的元素。

表 9-1

中显示的标准比较操作符可以用于jsonb,

但是不能用于json。

它们遵循第 8.14.4 节

中概述的B-tree操作符排序规则。

一些更深一步的操作符只为jsonb存在,在

表 9-41中显示。

许多这样的操作符可以用jsonb操作符类索引。

jsonb容器和存在语义的详细描述,请查看

第 8.14.3 节。第 8.14.4 节

描述了这些操作符如何用于有效的索引jsonb数据。

表 9-41. 额外的 jsonb 操作符操作符右操作数的类型描述示例@>jsonb左侧的JSON值包含右侧的值吗?'{"a":1, "b":2}'::jsonb @> '{"b":2}'::jsonb

?text键/元素字符串 包含JSON值吗?'{"a":1, "b":2}'::jsonb ? 'b'

?|text[]是否存在任一键/元素字符串?'{


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部