我正在迁移一些数据库。我有这个有几百行的表,并且有一个文件名列。对于此表中的每条记录,需要更改filename列,并且需要将路径的一部分添加到该字段中的值。
表格如下:
| 1 | filename1 |
| 2 | filename2 |
并且需要成为:
| 1 | path/filename1 |
| 2 | path/filename2 |
我不是SQL大师,但我知道基础知识。但这让我望而却步。有没有办法做类似的事情:
update table
set filename = 'path/' + filename
where id = 1;
答案 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