PGSQL JSONB用法

PGSQL JSONB用法


查询jsonb对象数组是否包含某个元素
data_content @> ‘{“object1”: [“140000000000”]}’
data_content -> ‘object1’ ? ‘140000000000’

sql写法:

SELECT ID
	data_content 
FROM
	data_content_table 
WHERE
	id = 1076188122667307077 
	AND data_content ->> 'max' = '200' 
	AND data_content ->> 'min' = '190' 
--AND data_content @> '{"object1": ["140000000000"]}'	
	AND data_content -> 'object1' ? '140000000000' 
	AND data_content -> 'object2' ? 'A111111';
--AND data_content @> '{"object2": ["A111111"]}';

mybatis xml写法:
第一种写法:

        <if test="req.object1 != null and req.object1 != ''">
            and data_content  -> 'object1' ?? #{req.object1}
        </if>
        <if test="req.object2 != null and req.object2 != ''">
            and data_content  -> 'object2' ?? #{req.object2}
        </if>
        <if test="req.object3 != null and req.object3 != ''">
            and data_content  -> 'object3' ?? #{req.object3}
        </if>
        <if test="req.object4 != null and req.object4 != ''">
            and data_content  -> 'object4' ?? #{req.object4}
        </if>
        <if test="req.object5 != null and req.object5 != ''">
            and data_content  -> 'object5' ?? #{req.object5}
        </if>

第二种写法:

        <if test="req.object1 != null">
            and data_content   <![CDATA[@>]]>  '{"object1":["${req.object1}"]}'
        </if>
        <if test="req.object2 != null">
            and data_content   <![CDATA[@>]]>  '{"object2":["${req.object2}"]}'
        </if>
        <if test="req.object3 != null">
            and data_content   <![CDATA[@>]]>  '{"object3":["${req.object3}"]}'
        </if>
        <if test="req.object4 != null">
            and data_content   <![CDATA[@>]]>  '{"object4":["${req.object4}"]}'
        </if>
        <if test="req.object5 != null">
            and data_content   <![CDATA[@>]]>   '{"object5":["${req.object5}"]}'
        </if>

JSONb用法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值