操作符不存在:字符变化= uuID
客户机id是UUId,应该是它不工作的原因。
我错在哪里,因为我几乎尝试了我想象的一切。

SELECT * FROM "cobranca_assinatura"
INNER JOIN "cadastro_cliente" ON ("cobranca_assinatura"."cliente_id" = "cadastro_cliente"."id")
WHERE "cadastro_cliente"."nome" LIKE marcelo% ESCAPE '\'

[2019-03-2114:40:34 ]〔42883〕错误:操作符不存在:
字符变化=uuid[2019-03-21 14:40:34]
迪卡:没有接线员
匹配给定的名称和参数类型。你可能需要添加
显式类型转换。

最佳答案

uuid是特定的数据类型。对你来说,它看起来像文本,但不是。不能使用字符串函数比较uuid,也不能将其与文本进行比较。
正如Tamer建议的,如果需要比较,可以先投。

SELECT *
FROM (SELECT 'A0EEBC99-9C0B-4EF8-BB6D-6BB9BD380A11'::uuid as my_uuid) foo
WHERE my_uuid::text like 'a%'

例如,在上面,我通过将字符串转换为uuid类型来创建uuid。(如果尝试将任何旧字符串大小写为uuid,则会失败,因为'abc'不能是uuid)。
然后使用一个名为“my uuid”的uuid项,我将其转换回字符串以使用字符串比较。(注意“A”变成“A”!)

关于postgresql - 如何在PostgreSQL中将字符变化(varchar)与UUID进行比较?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55286397/

10-10 21:50
查看更多