json存储了[1,2,4,5],.I有类似于[1,23,4]的数组。我想检查json字段中存在的s数组的任何一个值。我可能需要像['1','2','4','5']这样存储数组的其他选项,这样我就可以使用?|运算符,或者它们的选项还有什么我可以做的吗?
发布于 2018-07-17 09:25:35
没有现成的函数或操作符来完成这一任务。您可以使用以下函数:
create or replace function jsonb_int_array(jsonb)
returns integer[] language sql immutable as $function$
select array(select jsonb_array_elements_text($1)::int)
$function$;在查询中使用重叠算子
with my_table(data) as (
values ('[1,2,4,5]'::jsonb)
)
select *
from my_table
where jsonb_int_array(data) && array[1,23,4]
data
--------------
[1, 2, 4, 5]
(1 row) https://stackoverflow.com/questions/51376811
复制相似问题