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[]是否存在任一键/元素字符串?'{
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
