Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql Postgres:数组搜索包含一些元素_Postgresql - Fatal编程技术网

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针对现有结构的解决方案存在逻辑错误,您有解决方案-其他人会发现它可以学习