SQL更新语句更改字段的值而不替换它

时间:2010-05-18 20:40:25

标签: sql postgresql

我正在迁移一些数据库。我有这个有几百行的表,并且有一个文件名列。对于此表中的每条记录,需要更改filename列,并且需要将路径的一部分添加到该字段中的值。

表格如下:

| 1 | filename1 |
| 2 | filename2 |

并且需要成为:

| 1 | path/filename1 |
| 2 | path/filename2 |

我不是SQL大师,但我知道基础知识。但这让我望而却步。有没有办法做类似的事情:

update table 
   set filename = 'path/' + filename 
 where id = 1; 

4 个答案:

答案 0 :(得分:9)

你几乎就在那里。如果要对所有行执行此操作,则无需指定where子句,因此它只是:

update table set filename = 'path/' || filename;

||是PostgreSQL中的连接运算符)

答案 1 :(得分:1)

他们告诉你如何编写连接,我建议你先运行这个selct,看看你的结果是什么:

select filename, 'path/'|| filename  from table
where id = 1; 

答案 2 :(得分:0)

我认为这应该有效:

UPDATE table SET filename = CONCAT("path/", filename);

答案 3 :(得分:0)

UPDATE  table
SET     filename = 'path/' || filename
WHERE   id = 1