SQL查询从postgresql数据库表中具有数组数据类型的列中获取数据。

问题描述 投票:1回答:1

我在数据库中创建了一个带有以下SQL查询的表。

CREATE TABLE Employees (
   id int PRIMARY KEY,
   name VARCHAR (100),
   contact TEXT []
);

现在我用一些值填充它。

INSERT INTO Employees 
VALUES
   (
      1,
      'Alice John',
      ARRAY [ '132','567' ]
   );

现在我的问题是我如何使用java写查询来检索雇员记录,其中联系人是'567'?

注:我使用jooq与postgresql数据库来执行所有的查询操作。

java postgresql jooq
1个回答
0
投票

jOOQ并不支持太多特定供应商的操作。在大多数情况下,你需要使用以下方法来扩展jOOQ。纯SQL模板化. 在这种情况下:

ctx.selectFrom(EMPLOYEES)
   .where("{0} @> ARRAY[{1}]", EMPLOYEES.CONTACT, val("567"))
   .fetch();
© www.soinside.com 2019 - 2024. All rights reserved.