postgresql - Postgres SELECT 数组中的值

标签 postgresql

我有一个看起来像这样的 postres 表:(缩短)

id (serial) | col1 (character varying[])
----------------------------------------
1           | {'Life', 'Health', "'VA Data'"}

我正在尝试执行以下操作:

SELECT * FROM mytable WHERE 'Life' = ANY (col1)

这个查询的结果,是零条记录。

目标是,我想要在 col1 数组中具有值“Life”的任何行。

我做错了什么?

最佳答案

Any 应该可以工作,但是您向我展示的表格输出不是 Life 而是“Life”。请参阅下面的示例(1. 正确插入的数据及其外观;2. 错误插入的数据及其外观 - 看起来像您的;3. 所有数据):

testdb=# select * from test where 'Life' = ANY(col1);
 id |          col1           
----+-------------------------
  1 | {Life,Health,"VA Data"}
(1 row)

testdb=# select * from test where '''Life''' = ANY(col1);
 id |           col1            
----+---------------------------
  2 | {'Life',Health,"VA Data"}
(1 row)

testdb=# select * from test;
 id |           col1            
----+---------------------------
  1 | {Life,Health,"VA Data"}
  2 | {'Life',Health,"VA Data"}

关于postgresql - Postgres SELECT 数组中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34191848/

相关文章:

sql - 在 PostgreSQL 中交换具有 UNIQUE 约束的列的记录值

postgresql - 无法在 PostgreSQL 中创建类型为 "TIMESTAMP WITHOUT TIME ZONE"的列

sql - 在 postgres 中,是否有一种简单的方法可以将多个 attr/val 行选择到一条记录中?

postgresql - 使用 osm2pgsql 将 .pbf 转换为 postgresql(磁盘空间不足)

java - 如何在java中使用Hibernate在postgresql中保存json对象?

java - Spring:如何在 PostgreSQL 中使用 KeyHolder

sql - 尝试使用 django 从 postgres 数据库中按顺序获取下一个值

postgresql - 让 Doctrine 2 ORM 通过针对具有连接的表的自定义查询来混合对象

java - Spring boot中的PostgreSQL继承命名问题

performance - 唯一约束如何影响 Postgres DB 中的写入性能