开发者

SQL update statement to change the value of a field and not replace it

I'm in the开发者_运维知识库 process of migrating some databases. I have this table that has a couple of hundred rows, and has a filename column. To each record in this table, the filename column needs to be altered and part of a path needs to be prepended to the value that is in that field.

The table is like:

| 1 | filename1 |
| 2 | filename2 |

and needs to become:

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

I am not an SQL guru, but I know the basics. This eludes me though. Is there a way to do something like:

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


You pretty much have it right there. You don't need to specify a where clause if you want to do it for all the rows, so then it would just be:

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

(|| is the concatenation operator in PostgreSQL)


They have told you how to write teh concatenation, I suggest you run this selct first to see waht your results will be:

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


I think this should work:

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


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

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜