【发布时间】:2023-02-10 03:04:26
【问题描述】:
考虑下表:
CREATE TABLE uuid_items (
u uuid
);
CREATE TABLE jsonb_items (
j jsonb
);
INSERT INTO uuid_items (u) values ('6de8874f-99f0-4b05-8c83-b904b3065ff0');
INSERT INTO jsonb_items (j) values ('"6de8874f-99f0-4b05-8c83-b904b3065ff0"');
现在,我想在jsonb_items上加入uuid_items。像这样:
SELECT * from uuid_items JOIN jsonb_items ON uuid_items.u::jsonb = jsonb_items.j;
这会给我错误:
Query Error: error: cannot cast type uuid to jsonb
我想过使用像 jsonb_build_array 这样的东西作为黑客:
SELECT * from uuid_items JOIN jsonb_items ON jsonb_build_array(uuid_items.u)->0 = jsonb_items.j;
但我想知道:有没有更好的方法?我如何将 uuid_items.u 转换为有效的 jsonb 值?
你可以玩playground here
【问题讨论】:
标签: postgresql