我正在运行以下查询。(&&)运算符用于筛选具有任何重叠数组元素的结果集,并且如果我有一个非空数组,则它可以很好地工作,但在空数组的情况下,结果集是空的,这是可以推理出来的,但空数组在这种情况下可以被视为通用集吗?可能类似于array && ({*}::int[])
。我想知道是否有解决这种问题的方法。
select pm.id,
sum(c.density) as score
from
metadata pm,
unnest(pm.dimen_one_id::int[], pm.dimen_one_density::float[]) as c(id, density)
where
c.id = any('{1}'::int[])
group by
pm.pin_id,
pm.dimen_one_id,
pm.dimen_two_id,
pm.dimen_three_id
having
pm.dimen_two_id && '{36,37,38}'::int[] and
pm.dimen_three_id && '{23}'::int[]
order by
score desc
limit
10
offset
0
select count(*) from table_name where (cardinality(array::bigint[]) = 0) or (col_name && array::bigint[]);
其中array是实际的数组。