PostgreSQL向现有行添加更多值

时间:2018-09-17 19:57:13

标签: postgresql

我一点都不熟悉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;

问候,

1 个答案:

答案 0 :(得分: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';