2011-10-28 11 views

Odpowiedz

9

W PostgreSQL jest arrays. Na przykład:

CREATE TABLE "token" (
    "id"  integer PRIMARY KEY, 
    "text"  text, 
    "category" text[] 
); 

Teraz można wstawić wiele kategorii dla każdego wiersza w token:

INSERT INTO "token" ("id", "text", "category") 
VALUES (1, 'some text', ARRAY['cate1', 'cate2']); 

można znaleźć wiersze jak:

SELECT * FROM "token" WHERE 'cate1' = ANY ("category"); 
+0

Jeśli zrobię zapytanie jak 'select * from tokena WHERE category =„cate1'', zapytanie przeszuka tablicę? –

+0

@ RenatoDinhaniConceição Nie, zamiast tego możesz użyć operatora '@>' lub ['ANY'] (http://www.postgresql.org/docs/9.0/interactive/functions-comparisons.html#AEN16871). – minhee

Powiązane problemy