Date:2019-11-15數據庫
讀前思考:json
你沒想到解決辦法?後端
PostgreSQL 數據庫自己就支持仍是另有解決辦法?app
說明:首先此次數據庫使用到Json數據類型的緣由,此次由於咱們在作了一個app 推送的業務,推送的時候,後端給app 推送 好幾個字段的內容。 咱們這裏就直接使用了jsonb數據類型。ui
使用推送技術:極光推送spa
如今開始正事了,code
以下:blog
"rule":{ "tags": { "target": "logon" }, "time": "2019-11-15 10:00:00", "method": "scheduled", "source": "backend", "aliases": [], "sendType": "tag", "registrationIds": [] }
如今我想獲取 rule 字段 裏面的 sendType="tag",那如今怎麼搞?get
代碼以下:io
#####Mybatis##### <select id="selectPushDataList" resultMap="BaseResultMap" parameterType="com.jpc.JpushData" > SELECT <include refid="Base_Column_List" /> FROM jp_push jpt <where> delete_flag=1 and (rule::json->>'sendType')::text = 'tag' <if test="name != null and name !=''" > and name =#{name,jdbcType=VARCHAR} </if> ORDER BY create_time ASC LIMIT ${pageSize} OFFSET ${(currentPage - 1) * pageSize} </where> </select> ####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
結果以下: