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 文档

提示:数组不是集合;搜索特定的数组元素可能是数据库设计错误的标志。考虑使用一个单独的表,其中每个项目将是一个数组元素。这将更容易搜索,并且对于大量元素可能会更好地扩展。

于 2012-07-15T15:30:16.057 回答