小编Sig*_*Sig的帖子

将文本数组转换为 UUID 数组

如何将texts 数组转换为UUIDs数组?

我需要join在两个表之间做一个:usersprojects

users表有一个名为的数组字段,project_ids其中包含作为文本的项目 ID。

projects表有一个名为 的 UUID 字段id

我最初的想法是一个查询看起来像:

SELECT * FROM projects
JOIN users ON
projects.id = ANY(users.project_ids)
Run Code Online (Sandbox Code Playgroud)

但这不起作用,因为users.project_ids不是,UUID所以我试过:

projects.id = ANY(users.project_ids::uuid[])
Run Code Online (Sandbox Code Playgroud)

乃至:

projects.id = ANY(ARRAY[users.project_ids]::uuid[])
Run Code Online (Sandbox Code Playgroud)

但没有一个有效:

ERROR: invalid input syntax for type uuid: ""
Run Code Online (Sandbox Code Playgroud)

更新

@a_horse_with_no_name 绝对正确。最好的选择应该是使用一组 UUID。

现在的问题是我如何可以改变的阵列text到阵列uuid

users表当前为空(0 条记录)。

我试过了

ALTER TABLE "users" ALTER COLUMN "project_ids" SET …
Run Code Online (Sandbox Code Playgroud)

postgresql join cast array uuid

5
推荐指数
1
解决办法
2万
查看次数

标签 统计

array ×1

cast ×1

join ×1

postgresql ×1

uuid ×1