我有一个以UUIDv4为主键的用户表。
如何选择id以“e2eb5”开头的所有行?
我尝试了以下选择:

SELECT * FROM "user" WHERE "id" LIKE 'e2eb5%';

在我的应用程序中,只有不到1000个用户,UUID的第一部分应该只是识别他们所需的所有信息。
因此,我希望用户详细信息位于如下url上:
/users/e2eb5
而不是:
/users/3b0fbfd6-0661-4880-b5c5-4659ed85fa96
编辑:
按此处建议查询:How to query UUID for postgres
where some_uuid between 'e99aec55-0000-0000-0000-000000000000'
                and 'e99aec55-ffff-ffff-ffff-ffffffffffff'

不可行的解决方案,因为它需要固定长度的uuid前缀或编写更复杂的查询。

最佳答案

您可以将id转换为text并比较您的问题。

SELECT *
FROM "user"
WHERE "id"::text LIKE 'e2eb5%';

这需要将每一行的id转换为文本,因此对于吨或行来说可能会很慢。但在1000人以下工作应该没问题。

关于postgresql - 使用UUID4的一部分选择行,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49516913/

10-15 19:55