最近接到一个新的需求,需要为数据添加标签并且要支持多个标签的精确收缩,于是相到了postgreSql 的array数据类型来做
sql如下:
select
id,labe
from
tabel
group by
id,
label;
having
array_agg(distinct label) @> array [ '测试' ];
-- @> 左操作数包含右操作数。例如:
select array ['111','222','333','44'] @> array['222','111']; true
-- <@ 右操作数包含左操作数。例如:
select array ['111','222','333','44'] <@ array['222','111']; false
distinct 去重重复的标签