Select 逐行包含检查
Select row by array contains check
我有一个table喜欢
CREATE TABLE table(
name VARCHAR(100) NOT NULL,
array INTEGER ARRAY NOT NULL
);
例如,如果我有行
name: test, array: [1, 2, 3]
name: test2, array: [663, 332, 334]
如何select array
中包含332 的行?数组可以是任意长度,但不能为空。
不幸的是,关于 HSQLDB 数组的文档不多。我使用的是 2.5.1 版 Java JDBC。
解决了。先前的方法调用导致异常,阻止了实际异常的抛出。
SELECT * FROM table WHERE 332 IN ( UNNEST(array) )
SELECT 332 IN UNNEST([663, 332, 334]) AS contains_value;
我有一个table喜欢
CREATE TABLE table(
name VARCHAR(100) NOT NULL,
array INTEGER ARRAY NOT NULL
);
例如,如果我有行
name: test, array: [1, 2, 3]
name: test2, array: [663, 332, 334]
如何select array
中包含332 的行?数组可以是任意长度,但不能为空。
不幸的是,关于 HSQLDB 数组的文档不多。我使用的是 2.5.1 版 Java JDBC。
解决了。先前的方法调用导致异常,阻止了实际异常的抛出。
SELECT * FROM table WHERE 332 IN ( UNNEST(array) )
SELECT 332 IN UNNEST([663, 332, 334]) AS contains_value;