【问题标题】:Select row by array contains check按数组选择行包含检查
【发布时间】:2026-01-29 03:15:01
【问题描述】:

我有一张这样的桌子

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]

如何选择array 中包含332 的行?数组可以是任意长度,但不能为空。

不幸的是,没有太多关于 HSQLDB 数组的文档。我使用的是 2.5.1 版和 Java JDBC。

【问题讨论】:

    标签: java sql arrays select hsqldb


    【解决方案1】:

    解决了。先前的方法调用导致异常,导致实际异常无法抛出。

    SELECT * FROM table WHERE 332 IN ( UNNEST(array) )
    

    【讨论】:

      【解决方案2】:
      SELECT 332 IN UNNEST([663, 332, 334]) AS contains_value;
      

      【讨论】:

      • 请添加解释以提高洞察力并为 OP 提供更多信息
      • 这是不正确的。问题是使用数组列作为数组来检查包含,问题已经解决了,这将引发语法错误。
      最近更新 更多