暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

postgresql array数组查询及操作array_remove、array_append

原创 章芋文 2020-06-19
8546

postgresql array数组操作

1、array_remove

从数组中移除某个值:

update tab_db set name=array_remove(name,'其他') where '其他'=ANY(name);

‘其他’=ANY(name)可以筛选出包含其他值的数组。

2、array_append

向数组中批量插入值:

update tab_db ck set name=array_append(name,(select lower(name)::character varying from tab_type d inner join tab_db k on k.type_id=d.id where k.id=ck.id));

3、移除数组中重复值

插入之后,有部分重复值,先将数组unnest,取distinct并再次转换成数组,如果这个数组和name[1:cardinality(name)-1])相等,那么说明这些name数组中存在重复值,通过set name=name[1:cardinality(name)-1]达到去重目的。

update tab_db set name=name[1:cardinality(name)-1] where id in (select id from ( SELECT id,name,(select array_agg(distinct val) from ( select unnest(name) as val ) as u ) as u FROM tab_db where cardinality(name)>1) as c where u=name[1:cardinality(name)-1]);

操作之前可以先select确认

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论