我目前正在以以下格式将数据存储在postgres db的jsonb列中:
{"ids": [4, 3, 2, 1]}
,其中值是整数数组。
我希望执行以下操作:
在该列中包含值4的行中找到行
'ids'键的数组。
在“ ids”键的值数组中找到该列包含值2、3和1的行。
我最近的尝试使用以下
select * from tablename WHERE (column_name -> ids)::integer[] && ARRAY[1,3]
哪个在:: integer [] ERROR: cannot cast type jsonb to integer[]
我怀疑我正在尝试转换“ ids”部分,需要更深入地研究,但是我不确定如何(如果那是正确的方法)。
答案 0 :(得分:1)
使用包含运算符// package.json
{
...
"dependencies": {
"gatsby-plugin-theme-ui": "^0.4.0-rc.1",
"@theme-ui/prism": "^0.4.0-rc.1",
"theme-ui": "^0.4.0-rc.1",
}
}
@>
这也适用于多个值:
select *
from tablename
WHERE column_name @> '{"ids":[4]}'
答案 1 :(得分:0)
SELECT * from tablename WHERE column_name -> 'ids' @> '[4]'::jsonb
SELECT * from tablename WHERE column_name -> 'ids' @> '[2,3,1]'::jsonb