0

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

章芋文 2020-06-19
2736

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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新发布
暂无内容,敬请期待...
数据库资讯
最新 热门 更多
本月热门
近期活动
全部
暂无活动,敬请期待...
相关课程
全部