我有一个postres表,看起来是这样的:(缩写)
id (serial) | col1 (character varying[])
----------------------------------------
1 | {'Life', 'Health', "'VA Data'"}
我正在尝试执行以下操作:
SELECT * FROM mytable WHERE 'Life' = ANY (col1)
此查询的结果是零条记录。
目标是,我想要任何行,在col1数组中具有值“Life”的行。
我做错什么了?
最佳答案
Any
应该行得通,但你给我看的是表的输出不是生命而是“生命”。参见下面的示例(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/