2010-05-18 44 views
2

我正在遷移某些數據庫的過程中。我有這張表有幾百行,並有一個文件名列。對於此表中的每條記錄,文件名列需要更改,並且路徑的一部分需要預置爲該字段中的值。SQL更新語句來更改字段的值,而不是替換它

表是這樣的:

| 1 | filename1 | 
| 2 | filename2 | 

,需要成爲:

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

我不是一個SQL大師,但我知道的基本知識。儘管如此,我仍然避而遠之有沒有辦法做這樣的事情:

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

這幾乎是可怕的這是多麼迅速回答。謝謝大家。有些東西告訴我這可能很容易爲親dba的;-) – wzzrd 2010-05-18 20:47:12

回答

9

你很可能就在那裏。你並不需要,如果你想這樣做的所有行指定where條款,所以後來這純粹是:

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

||是PostgreSQL的連接運算符)

+0

'''是PLSQL中的連接運算符,它由Oracle和另一個數據庫使用,使我逃脫ATM。 – 2010-05-18 20:45:39

+0

也是SQL標準中的數字。 – 2010-05-18 21:48:47

0

我想這應該工作:

UPDATE table SET filename = CONCAT("path/", filename); 
0
UPDATE table 
SET  filename = 'path/' || filename 
WHERE id = 1 
1

他們告訴你如何寫德串聯,我建議你先運行此SELCT看到啥子你的結果將是:

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