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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SQL查询从postgresql数据库表中具有数组数据类型的列中获取数据。相关的知识,希望对你有一定的参考价值。

我在数据库中创建了一个带有以下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数据库来执行所有的查询操作。

答案

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

ctx.selectFrom(EMPLOYEES)
   .where("{0} @> ARRAY[{1}]", EMPLOYEES.CONTACT, val("567"))
   .fetch();

以上是关于SQL查询从postgresql数据库表中具有数组数据类型的列中获取数据。的主要内容,如果未能解决你的问题,请参考以下文章

从具有加权行概率的 PostgreSQL 表中选择随机行

从 MySQL 迁移到 PostgreSQL 后类似查询的 SQL 性能问题

如何为复杂的 sql 查询获取中间数据。 PostgreSQL

用于从具有复杂结构的表中选择数据的 sql 查询

如何对 postgresql 中具有联合的查询进行更新?

Postgresql从具有不同列数的2个表中选择多条记录