2012-07-15 58 views
1

我有一個BIGINT [] colunm:選擇任意在任何(數組)(數組)

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

我需要選擇與其它資料2或5人。怎麼樣?

+2

你能規範化你的模式,所以你不會有這個問題? – RedFilter 2012-07-15 15:24:23

+0

對不起,但如何? @RedFilter – Falci 2012-07-15 15:29:34

+0

閱讀[數據庫規範化](http://phlonx.com/resources/nf3/)。 – RedFilter 2012-07-15 15:32:06

回答

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

但是,不推薦使用數組,因爲它會導致非規格化模式。

PostgreSQL docs

提示:數組不是集合;搜索特定數組元素可能是數據庫錯誤設計的標誌。考慮使用一個帶有 行的單獨表格作爲數組元素。這將更容易 進行搜索,並且可能對大量元素進行更好的縮放。