如何在PostgreSQL数组中筛选出除指定元素外的其余元素?
PostgreSQL数组移除指定元素的方法
方法1:使用array_remove函数(推荐,PostgreSQL 9.3及以上版本支持)
这是最直接的方式,专门用于移除数组中所有匹配的元素:
SELECT array_remove('{see,tom,run,fast}'::text[], 'run');
执行后会返回结果:{see,tom,fast}
方法2:兼容旧版本的通用写法
如果你的PostgreSQL版本低于9.3,不支持array_remove,可以通过展开数组→过滤元素→重新聚合的方式实现:
SELECT array_agg(elem) FROM unnest('{see,tom,run,fast}'::text[]) AS elem WHERE elem != 'run';
注意:两种方法都会移除数组中所有匹配目标值的元素,比如如果数组是'{run,see,run,fast}',执行后会把两个'run'都去掉。
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

