sql - Postgres 字符串到数组并检查是否包含值

标签 sql arrays postgresql select

我有一个表employer_entity,其中包含tokens列。此列是一个 varchar,它包含许多用逗号分隔的标记,例如:

id | tokens
---|------------------
 1 | aaaaa,bbbbb,ccccc

现在我想构建一个查询来检查 tokens 列是否包含标记 aaaaa。 这是我所拥有的

select *
from employer_entity
where 'aaaaa'
in (string_to_array(employer_entity.tokens, ','))

但它抛出一个错误

Array value must start with "{" or dimension information.

最佳答案

您正在寻找 any 运算符,而不是 in 运算符:

SELECT *
FROM   employer_entity
WHERE  'aaaaa' = ANY(STRING_TO_ARRAY(employer_entity.tokens, ','))

关于sql - Postgres 字符串到数组并检查是否包含值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74837618/

相关文章:

sql - 您将如何在您首选的 db 范式中为您的模型实现修订控制系统?

php - 可以在mysql数据末尾加一个值吗?

sql - 比较 VB.NET 中的数组

mysql - 使用外键将 MySQL 代码转换为 PostgreSQL

sql - 将 LINQ to SQL 与动态表一起使用

javascript - 使用多个输入字段填充数组

c - 具有多个参数的返回语句

Django 全文 SearchVectorField 在 PostgreSQL 中已过时

postgresql - PostgreSQL 中层次结构的多个角色的行级安全性

mysql - 如何主键在一个表中只能是一个