我在Postgres中有以下简化表格:
- User Model
我想要一个可以在UUID id
或文本uid
上找到用户的查询.
SELECT * FROM user
WHERE id = 'jsdfhiureeirh' or uid = 'jsdfhiureeirh';
我的查询生成了一个invalid input syntax for uuid
,因为在这个实例中我显然没有使用UUID.
如何完善该查询或判断该值是否为有效的UUID?
我在Postgres中有以下简化表格:
我想要一个可以在UUID id
或文本uid
上找到用户的查询.
SELECT * FROM user
WHERE id = 'jsdfhiureeirh' or uid = 'jsdfhiureeirh';
我的查询生成了一个invalid input syntax for uuid
,因为在这个实例中我显然没有使用UUID.
如何完善该查询或判断该值是否为有效的UUID?
找到了!将UUID列强制转换为::text
将停止错误.不确定性能是否会受到影响,但在大约5000行上,我获得了足够的性能.
SELECT * FROM user
WHERE id::text = 'jsdfhiureeirh' OR uid = 'jsdfhiureeirh';
SELECT * FROM user
WHERE id::text = '33bb9554-c616-42e6-a9c6-88d3bba4221c'
OR uid = '33bb9554-c616-42e6-a9c6-88d3bba4221c';