PostgreSQL为现有行添加更多值

问题描述 投票:1回答:1

我根本不熟悉SQL,希望有人可以提供帮助。

imss=# SELECT name, content from testdb where name = 'Test';
 name |                  content
------+--------------------------------------------
 Test | *@test1.com;*@test2.com;*@test3.com;
(1 row)

如何在“内容”列中添加更多值? WHERE name = 'Test'

like *@test4.com;*@test5.com;@test5.com;

亲切的问候,

postgresql
1个回答
3
投票

如果您将CSV存储为单列,则应重新考虑您的设计。

UPDATE testdb
SET content = content || ';@test4.com;*@test5.com;@test5.com'
WHERE name = 'Test';

如果内容是文本数组,那么你可以使用ARRAY_APPEND

UPDATE testdb
SET content = ARRAY_APPEND(content, '@test4.com')
WHERE name = 'Test';

或者:

UPDATE testdb
SET content = content || ARRAY['@test4.com']
WHERE name = 'Test';
© www.soinside.com 2019 - 2024. All rights reserved.