postgre 数据库uuid类型和jsonb类型查询

第一:“uuid”类型

在使用“uuid”类型写sql的时候,通常我们需要这么写

#{id,jdbcType=OTHER}::uuid

第二:“jsonb”类型

①.jsonb类型的查询第一种方式

(SELECT vtag::jsonb @>#{vtag,typeHandler=com.slife.pdfg.config.JsonbTypeHandler}::jsonb)

上述方式,在查询的时候,例如:

{"BusTypes": [], "TranType": []}

数据库存储的是上述类型,查询的时候也需是上述类型。

②.jsonb类型的查询第二种方式

select * from ( select *,jsonb_array_elements(ctag->'BusTypes')->>'BValue' as food from test ) as sss where food='day'

这个例子是先把数据转换成json数组,然后在去遍历查询。

数据格式如下:

{"BusTypes": [{"BName": "BName1", "BValue": "day"}, {"BName": "BName2", "BValue": "wet"}, {"BName": "BName3", "BValue": "recoverable"}], "TranType": [{"BName": "BName1", "BValue": "0001"}, {"BName": "BName2", "BValue": "0002"}, {"BName": "BName3", "BValue": "0011"}]} 

like查询:

select * from test where ((ctag->'BusTypes') ::text) like '%"BValue": "day"%' 
原文地址:https://www.cnblogs.com/haoliyou/p/13743802.html