如果ARRAY包含整数,则进行SQL测试

时间:2015-07-02 15:33:27

标签: sql arrays hsqldb

我有一个像

这样的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]

1 个答案:

答案 0 :(得分:1)

鉴于DBMS和一些快速研究,看起来SQL2008支持ANY关键字以允许这种类型的数组类型查询:

SELECT * FROM Test WHERE 3 = ANY (ContentArray);

我仍然不建议将数组数据类型用于任何非平凡的事情,我不确定上述查询的性能会是什么样的,但我确定它是&#39 ; s不如带孩子的主表那么好。