1

私はbigint[]列を持っています:

person
------
id | name  | other_information
------------------------------
 1 | Zé    | {1,2,3}
 2 | João  | {1,3}
 3 | Maria | {3,5}

other_informationに2または5の人を選択する必要があります。どのように?

4

1 に答える 1

0
select *
from person
where 2 = ANY(other_information)
 or 5 = ANY(other_information)

ただし、非正規化されたスキーマになるため、配列の使用はお勧めしません。

PostgreSQL ドキュメントから:

ヒント: 配列はセットではありません。特定の配列要素の検索は、データベースの設計ミスの兆候である可能性があります。配列要素となる項目ごとに 1 つの行を持つ個別のテーブルを使用することを検討してください。これにより、検索が容易になり、多数の要素に対してより適切にスケーリングされる可能性があります。

于 2012-07-15T15:30:16.057 に答える