类似于:

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

我try 了使用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

我想单一值还必须用撇号括起来.

这是可能的,还是可以用一种完全不同的方式解决?

推荐答案

使用Any运算符:

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

Postgresql相关问答推荐

PostgreSQL:如何 for each 唯一的客户输入/更新列中的数据,并将其递增1直到表的末尾

如何将存储的、生成的列添加到非常大的表中?

如何删除Devtainer之前创建的PostgreSQL数据库?

PostgreSQL 不删除旧的 WAL 档案

@符号在yacc中的函数中是什么意思

为什么在 PostgreSQL 中忽略查询超时?

PostgreSql maintenance_work_mem 在索引创建期间增加

如何将 JSONB 对象数组合并为 PostgreSQL 中的单个对象

无法从在 wsl 2 上运行的服务之一连接到在 wsl 2 上的容器中运行的 postgres 数据库

在 Ubuntu 11.04 服务器中启用对 postgresql 的 PHP 支持

PostgreSQL 如何比 SQLite 更快地执行写入?

从局域网访问 PostgreSQL 服务器

避免 created_at 和 updated_at 由 sequelize 自动生成

Rails ActiveRecord - 如何获取两个日期之间的记录

设置 Phoenix 框架和 Ecto 以使用 UUID:如何插入生成的值?

仅在存在时重命名列

获取json列键为空的记录

带有 WITH 子句的查询时出现 Postgresmissing FROM-clause entry错误

postgres regexp_replace 只想允许 a-z 和 A-Z

使用 PostgreSQL 的 Linq To Sql