date:2019-11-15
读前思考:
你没想到解决办法?
postgresql 数据库本身就支持还是另有解决办法?
说明:首先这次数据库使用到json数据类型的原因,这次因为我们在做了一个app 推送的业务,推送的时候,后端给app 推送 好几个字段的内容。 我们这里就直接使用了jsonb数据类型。
使用推送技术:极光推送
现在开始正事了,
如下:
"rule":{
"tags": {
"target": "logon"
},
"time": "2019-11-15 10:00:00",
"method": "scheduled",
"source": "backend",
"aliases": [],
"sendtype": "tag",
"registrationids": []
}
现在我想获取 rule 字段 里面的 sendtype="tag",那现在怎么搞?
代码如下:
#####mybatis#####
select
from
jp_push jpt
delete_flag=1
and (rule::json->>'sendtype')::text = 'tag'
and name =#{name,jdbctype=varchar}
order by
create_time asc
limit ${pagesize} offset ${(currentpage - 1) * pagesize}
####postgresql sql####
select
uuid,
create_user,
create_time,
update_user,
update_time,
delete_flag,
name,
type,
push,
rule,
status
from
jp_push jpt
where
jpt.delete_flag = 1
and ( jpct.rule :: json ->> 'sendtype' ) :: text = 'tag'
and jpt.name = 'testname'
order by
jpt.create_time asc
limit 20 offset 0
结果如下:
如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!