Postgresql Postgres:数组搜索包含一些元素
我的数据库中有一个Postgresql Postgres:数组搜索包含一些元素,postgresql,Postgresql,我的数据库中有一个records表,其中包含一个名为multi-id的列,存储为varchar record_id multi-ids 1 [1,2,3] 我正在尝试编写一个查询,它将返回与multi-id列中的一些数字匹配的记录 我试过这样的方法: SELECT * FROM records WHERE multi-ids::jsonb @> '[1,2]' 使用该查询,我能够返回记录1。但是,如果我要搜索[3,4,5],则不会返回任何内容 是否有一个对
records
表,其中包含一个名为multi-id
的列,存储为varchar
record_id multi-ids
1 [1,2,3]
我正在尝试编写一个查询,它将返回与multi-id
列中的一些数字匹配的记录
我试过这样的方法:
SELECT *
FROM records
WHERE multi-ids::jsonb @> '[1,2]'
使用该查询,我能够返回记录1。但是,如果我要搜索[3,4,5]
,则不会返回任何内容
是否有一个对这两种情况都适用的查询?如果一些数字匹配,然后返回记录?使用常规数组:
WHERE translate(多ID,[]',“{}”)::int[]&&array[3,4,5]
这是一个很好的建议-为什么不将其作为答案?@VaoTsun因为实际答案应该是“根据以下内容组织数据”:o)是的-这是更好的建议!但是OP针对现有结构的解决方案存在逻辑错误,您有一个解决方案-其他人会发现它可以使用正则数组:WHERE translate(multi-id,“[]”,“{}”)::int[]&&array[3,4,5]
这是一个很好的建议-为什么不将其作为答案?@VaoTsun因为实际答案应该是“根据以下内容组织您的数据”:o)是的-这是更好的建议!但OP针对现有结构的解决方案存在逻辑错误,您有解决方案-其他人会发现它可以学习