【发布时间】:2018-03-27 23:52:35
【问题描述】:
我有以 UUIDv4 作为主键的用户表。 如何选择 id 以“e2eb5”开头的所有行?
我尝试了以下选择:
SELECT * FROM "user" WHERE "id" LIKE 'e2eb5%';
在我的应用程序中,用户不到一千,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转换为文本并以这种方式进行比较。... WHERE "id"::text LIKE 'e2eb5%';。大量行可能会失去性能,但我认为少于 1,000 行应该没问题。 -
@trs 效果很好!请发布它作为您的答案。
标签: postgresql