2011-12-08 29 views
0

我正在努力與最簡單的(看似)MySQL更新。我有這樣的結構:如何更新所有ColX與字符串+ ColY數據+字符串

Col1 Col2 Col3 
1  "A" null 
2  "B" null 
etc... 

我有數千行與此串行化的數據來更新:一個:1:{I:0; S:7: 「.PNG [COL3的內容]」;}

我已經試過:就這一主題

UPDATE Blaa SET Col3 = "a:1:{i:0;s:7:\""Col2".png\";}"; 
UPDATE Blaa SET Col3 = "a:1:{i:0;s:7:\""&Col2&".png\";}"; 
UPDATE Blaa SET Col3 = "a:1:{i:0;s:7:\""+Col2+".png\";}"; 

,並加載更多的變化。我想我可能需要有一個「選擇」,但我不知道如何使它針對當前行。

我需要的決賽桌有這樣的數據:

Col1 Col2 Col3 
1  "A" "a:1:{i:0;s:5:"A.png";}" 
2  "B" "a:1:{i:0;s:5:"B.png";}" 
etc... 

累... ...餓...混淆期限只是航行在左邊過去。幫幫我! 翻譯

回答

2

聽起來像你需要改變模式,而不是查詢中的變化:)。但無論如何,你正在尋找功能CONCAT。

http://dev.mysql.com/doc/refman/5.0/en/string-functions.html

+0

好,謝謝科爾賓。那正是我需要的。這裏是我最終的查詢,並增加了'length'函數,這樣如果Col3比預期更長或更短,串行化數據就不會被破壞:'UPDATE Blaa SET Col3 = CONCAT('a:1:{i:0; s :」,長度(col2的)4, ': 「',Col2中, 'PNG」;}')' –

1
update table_name 
set col3 = concat('"a:1:{i:0;s:5:"',replace(col2,'"',''),'.png";}"'); 
相關問題