是否可以调整PostgreSQL中的数组以适应IN操作符?

e0bqpujr  于 2023-01-25  发布在  PostgreSQL
关注(0)|答案(2)|浏览(146)

比如:

SELECT * FROM table WHERE something IN ('{"val1","val2"}'::text[]);

我用array_to_string()试过了。

SELECT * FROM table WHERE something IN (array_to_string('{"val1","val2"}'::text[]));

但我想这就是:

SELECT * FROM table WHERE something IN ('val1,val2'); --one single string

我猜单个值也必须用撇号括起来。
这有可能吗?或者可以用一种完全不同的方式来解决?

q35jwt9p

q35jwt9p1#

使用ANY运算符:

SELECT * 
FROM table 
WHERE something = ANY ('{"val1","val2"}'::text[]);
ttp71kqs

ttp71kqs2#

您正在寻找的页面

SELECT * 
FROM example
WHERE something = ANY('{"val1","val2"}'::text[]);

但是如果您坚持使用IN,则可以使用UNNEST实现相同的效果:

SELECT * 
FROM example
WHERE something IN (SELECT UNNEST('{"val1","val2"}'::text[]));

online demo

相关问题