gpt4 book ai didi

postgresql - 如何比较 PostgreSQL 中的字符变化(varchar)与 UUID?

转载 作者:行者123 更新时间:2023-11-29 12:15:49 27 4
gpt4 key购买 nike

运算符不存在:字符 varying = 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-21 14:40:34] [42883] ERROR: operator does not exist: character varying = uuid [2019-03-21 14:40:34] Dica: No operator matches the given name and argument type(s). You might need to add explicit type casts.

最佳答案

uuid 是一种特定的数据类型。对你来说它看起来像文本,但它不是。您不能使用字符串函数 (uuid like "abc%") 比较 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/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com