たとえば、私はタイプを持っています:
CREATE TYPE record AS ( name text, description text, tags text[])
そしてテーブル:
CREATE TABLE items ( id serial, records record[] )
PL/pgSQLを使用せずに、タグ「test」を持つレコードを持つすべてのアイテムを選択するにはどうすればよいですか?
たとえば、私はタイプを持っています:
CREATE TYPE record AS ( name text, description text, tags text[])
そしてテーブル:
CREATE TABLE items ( id serial, records record[] )
PL/pgSQLを使用せずに、タグ「test」を持つレコードを持つすべてのアイテムを選択するにはどうすればよいですか?
なぜ誰もが配列や 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)
そして、別の配列の複合体で配列内のテキストを検索する...まあ、それはただ頭がおかしくなるだけです。そして、あなたがそれを理解したとしても、あなたの後にあなたのコードを維持しようとした人は頭を悩ませたままになるでしょう。