PostgreSQLのフィールドに複数の値を格納することが可能かどうかを知りたい。PostgreSQLで利用できる多値フィールド型はありますか?
は、私が列id
、text
とcategory
でToken
と呼ばれるテーブルを持っています。 category
は多値フィールドです。別のテーブルを作成する必要がありますか、それともテーブルのToken
に格納する方法がありますか?
PostgreSQLのフィールドに複数の値を格納することが可能かどうかを知りたい。PostgreSQLで利用できる多値フィールド型はありますか?
は、私が列id
、text
とcategory
でToken
と呼ばれるテーブルを持っています。 category
は多値フィールドです。別のテーブルを作成する必要がありますか、それともテーブルのToken
に格納する方法がありますか?
PostgreSQLにはarraysがあります。たとえば:
CREATE TABLE "token" (
"id" integer PRIMARY KEY,
"text" text,
"category" text[]
);
は今、あなたはtoken
に各行に対して複数のカテゴリを挿入することができます。
SELECT * FROM "token" WHERE 'cate1' = ANY ("category");
がいくつかあります:
INSERT INTO "token" ("id", "text", "category")
VALUES (1, 'some text', ARRAY['cate1', 'cate2']);
はあなたが好きな行を見つけることができます
私は 'SELECT * FROMトークンカテゴリ=「cate1''ようなクエリ、クエリを実行した場合配列内を検索しますか? –
@RenatoDinhaniConceiçãoいいえ、代わりに '@>'演算子または['ANY'](http://www.postgresql.org/docs/9.0/interactive/functions-comparisons.html#AEN16871)hyperoperatorを使用できます。 – minhee