首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Postgres Array Append & Array Push的数组长度

Postgres Array Append & Array Push的数组长度
EN

Stack Overflow用户
提问于 2012-06-13 11:23:17
回答 1查看 25.2K关注 0票数 27

当未提供数组大小时,将元素添加到数组的最佳方法是什么?

对于array_append,这是我能想到的:

代码语言:javascript
复制
UPDATE table SET array = array_append((SELECT array FROM table WHERE ...), 'element') WHERE ...;

对于array_length,这是我能想到的:

代码语言:javascript
复制
UPDATE table SET array[array_length((SELECT array FROM table WHERE ...), 1)+1] = element;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-06-13 12:41:53

最简单的事情是:

代码语言:javascript
复制
update table
set array = array_append(array, 'element')
where ...

或者使用|| operator

代码语言:javascript
复制
update table
set array = array || 'element'
where ...

这两种方法都等同于更常见的数字set n = n + 11。根据涉及的类型,您可能需要通过包含类型转换来消除||运算符的歧义:

代码语言:javascript
复制
update table
set array = array || 'element'::text
where ...

以便PostgreSQL知道您需要array || element版本的||,而不是array || array版本。感谢ak5让我注意到这一点。

票数 53
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11007800

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档