postgresql对json的支持(tpz)

1、创建含有json数据类型的表格

CREATE TABLE if not exists public.student
        (
          name varchar,
          user_card varchar,
          age int,
          info jsonb,
          CONSTRAINT student_pkey PRIMARY KEY (user_card)
        );
        insert into public.student values('tom', '1234567890', 11,'{"key1":[1,2,4,["a","b","c"]],"key2":[2,5,7,["a","d","e"]]}');
        insert into public.student values('katty', '1234509890', 20,'{"key1":[8,10,4,["j","n","c"]],"key2":[9,5,19,["a","m","e"]]}');

2、根据条件获取json

select info->'key1'  as info_list from public.student;


//挑选id  和checkresult的json字段的name属性 以别名 check_name和checkresult从表中查询
查询条件 checkresult中的name 为德玛西亚
SELECT ID
    ,
    checkresult :: json -> 'name' AS check_name,
    checkresult 
FROM
    check_result 
WHERE
    ( checkresult :: json -> 'name' ) :: TEXT like '%德玛西亚%';
//在表中添加一个 extra_config  的json字段
ALTER TABLE user ADD COLUMN extra_config json; 

//插入一组数据 
INSERT INTO user (id, extra_config) VALUES(1, '{"name":"张三","age":18,"birthday":"2013-03-03"}')


//查找名字是张三的数据
SELECT id,extra_config::json->'name' as name FROM user WHERE (extra_config::json->'name')::text = '张三'



select a::json#>'{person,name}' as name_json,(a::json#>'{person,name}')::text as name_txt,(a::json#>>'{person,name}')::text as name_textval_only,* from json_array_elements('[{"person":{"name":"李四","age":17,"birthday":"2014-03-15"}},{"person":{"name":"王武","age":27,"birthday":"2013-03-15"}}]') as a

where (a::json#>>'{person,name}')::text = '李四';

(85条消息) PGSQL JSONB或者JSON类型字段常见用法_呆呆槑呆呆的博客-优快云博客_::jsonb

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值