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 的条件

报错

需要将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类型

技术
下载桌面版
GitHub
Gitee
SourceForge
百度网盘(提取码:draw)
云服务器优惠
华为云优惠券
腾讯云优惠券
阿里云优惠券
Vultr优惠券
站点信息
问题反馈
邮箱:[email protected]
吐槽一下
QQ群:766591547
关注微信