SQL Update Concat数组

时间:2018-05-17 14:59:52

标签: sql arrays postgresql concat

我正在尝试将值添加到现有的整数列数组中。我正在使用此查询。

UPDATE users SET conversations_id = CONCAT(conversations_id, '{2,3}');

它给了我这个错误。

ERROR:  column "conversations_id" is of type integer[] but expression is of 
type text
LINE 1: UPDATE users SET conversations_id = CONCAT(conversations_id,...
                                        ^
HINT:  You will need to rewrite or cast the expression.
SQL state: 42804
Character: 37

据我所知,它告诉我第二个参数是文本,但它要求以这种方式编写,就像在这里一样。

UPDATE users SET conversations_id = '{1,2,3}';

我已经尝试将第二个参数转换为数组,但我不确定如何。我也尝试将其标记为VARIADIC,但在这种情况下,我不知道该怎么做。

如何向此阵列添加新值?

1 个答案:

答案 0 :(得分:0)

As documented in the manual将数组附加到另​​一个数组的运算符是||或函数array_cat()。对于text / varchar值,concat()

所以你需要使用:

UPDATE users 
   SET conversations_id = conversations_id || '{2,3}'::int[];

UPDATE users 
   SET conversations_id = array_cat(conversations_id, '{2,3}'::int[]);