我有一个像
这样的SQL表CREATE TABLE Test ( ContentArray INTEGER ARRAY )`.
I can insert an column with `INSERT INTO Test ( ContentArray ) VALUES ( ARRAY[1,2,3,4] )
但我不知道如何获取ContentArray
包含整数3的所有列。
例如:
INSERT INTO Test ( ContentArray ) VALUES ( ARRAY[1,2] )
INSERT INTO Test ( ContentArray ) VALUES ( ARRAY[3,4] )
INSERT INTO Test ( ContentArray ) VALUES ( ARRAY[4,5] )
INSERT INTO Test ( ContentArray ) VALUES ( ARRAY[5,6] )
SELECT ContentArray FROM Test WHERE /* ContentArray contains 5 and 6 */
应该返回ARRAY[5,6]
。
答案 0 :(得分:1)
鉴于DBMS和一些快速研究,看起来SQL2008支持ANY关键字以允许这种类型的数组类型查询:
SELECT * FROM Test WHERE 3 = ANY (ContentArray);
我仍然不建议将数组数据类型用于任何非平凡的事情,我不确定上述查询的性能会是什么样的,但我确定它是&#39 ; s不如带孩子的主表那么好。