2011-12-08 5 views
0

最も単純な(一見)MySQLアップデートに苦労しています。私は、この構造を有する:文字列+ ColYデータ+文字列ですべてのColXを更新する方法

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

私はこのシリアル化されたデータで更新する行の数千を持っている:1:{I:0; S:7: "[COL3の内容]の.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\";}"; 
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

[OK]を感謝コービン。それはまさに私が必要としたものでした。これは、長さ関数を追加して終了したクエリです.Col3の長さが予想より長かったり短かったりすると、シリアル化されたデータが破損しないようになっています: 'UPDATE Bla 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";}"'); 
関連する問題