Postgresql operator does not exist: uuid = text

先说自己的问题。

[{"objectId": "7d1176e6-b73a-4006-be35-8e39281e9cfd", "objectType": "user"}, {"objectId": "22a12098-1490-46e1-9630-9bb88a3f8258", "objectType": "user"}]

这种数据格式,我要将objectId 当做条件进行查询

首先将jsonb 中的 objectId 取出来

jsonb_array_elements ( "user".follows ) ->> 'objectId'

然后当做where in 的条件

Postgresql operator does not exist: uuid = text_数据格式

报错

需要将text 转成 UUID类型

修改一下

SELECT cast(jsonb_array_elements ( "user".follows ) ->> 'objectId'  AS uuid)
FROM "user" "user"
WHERE "user"."id" = 'bd8d86a9-247d-4f74-a8db-a935295b4520'

这样就OK了。

 

->> 是转成text类型

->是转成json类型