gpt4 book ai didi

postgresql - 选择复合类型数组的条件(postgresql)

转载 作者:行者123 更新时间:2023-11-29 11:46:18 31 4
gpt4 key购买 nike

例如我有类型:

CREATE TYPE record AS ( name text, description text, tags text[])

和表:

CREATE TABLE items ( id serial, records record[] )

如何选择所有带有标签“test”的记录的项目(不使用 PL/pgSQL)?

最佳答案

为什么每个人都想用数组、hstores 等搬起石头砸自己的脚?将数据规范化为标准 SQL 表。并在编程时使用数组、hstores 等高级功能。但是这里有一颗子弹......

Postgres 不会喜欢您使用保留字作为类型。

CREATE TYPE rec AS (name text, description text, tags text[]);
CREATE TABLE items (id int, wreck rec);
INSERT INTO items(1, row('foo','foo description', '{test,testing,tested}')::rec);

SELECT *
FROM items
WHERE 'test' = ANY ((wreck).tags)

然后在一个数组中搜索文本,在另一个数组中的组合中搜索……这真是令人难以置信。即使您确实弄清楚了,任何在您之后尝试维护您的代码的人都会摸不着头脑。

关于postgresql - 选择复合类型数组的条件(postgresql),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2559827/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com