如何查询在 postgres 中以字符串形式存在的数组?
How to query array which is present as string in postgres?
我有一个名为 table
的 table,列名为 column
,数据类型为 text
,值类似于“["1","2"]
”。
我需要获取所有以“1”作为元素之一的记录。
select *
from table
where column.....?
where 子句应该如何设置?
我认为您可以在 jsonb
上使用 ?
运算符,键入:
select *
from (
select '["1","2"]' union all
select '["0"]'
) as a(data)
where
a.data::jsonb ? '1'
一般来说,我会考虑将您的数据存储为 jsonb
而不是字符串。
只需使用LIKE
。保留双引号以传递 1,但避免包含该数字的其他数字。
select *
from table
where column like '%"1"%'
我有一个名为 table
的 table,列名为 column
,数据类型为 text
,值类似于“["1","2"]
”。
我需要获取所有以“1”作为元素之一的记录。
select *
from table
where column.....?
where 子句应该如何设置?
我认为您可以在 jsonb
上使用 ?
运算符,键入:
select *
from (
select '["1","2"]' union all
select '["0"]'
) as a(data)
where
a.data::jsonb ? '1'
一般来说,我会考虑将您的数据存储为 jsonb
而不是字符串。
只需使用LIKE
。保留双引号以传递 1,但避免包含该数字的其他数字。
select *
from table
where column like '%"1"%'