例如我有类型:
CREATE TYPE record AS ( name text, description text, tags text[])
和表:
CREATE TABLE items ( id serial, records record[] )
如何选择所有带有标签“test”记录的项目(不使用 PL/pgSQL)?
例如我有类型:
CREATE TYPE record AS ( name text, description text, tags text[])
和表:
CREATE TABLE items ( id serial, records record[] )
如何选择所有带有标签“test”记录的项目(不使用 PL/pgSQL)?
为什么每个人都想用数组、hstore 等来踢自己的脚?将您的数据规范化为标准 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)
并在一个数组中搜索文本,在另一个数组中的复合中搜索......好吧,这简直令人难以置信。即使你确实弄明白了,任何追随你试图维护你的代码的人都会摸不着头脑。