集合相等
来自 PostgreSQL Wiki
跳转到导航跳转到搜索
数组相等对数组中的顺序和重复项敏感,因此不适合将数组作为集合进行测试。
集合相等可以通过测试数组是否“包含和被包含”来获得。
实现
这是一个便利运算符。它没有针对性能进行优化,不支持索引,也不考虑多维数组。
create function contains_contained_by (anyarray, anyarray) returns boolean
language SQL as $$
select $1 <@ $2 and $1 @> $2
$$
parallel safe --omit this line prior to version 9.6
immutable;
create operator <@> (
procedure = contains_contained_by,
leftarg = anyarray,
rightarg = anyarray
);
用法
select '{c,a,b}'::text[] <@> '{b,a,c,b}'::text[];