2012-04-26 13 views
0

私は文字列を含む列を持っていますが、バグのために文字列の値の一部が間違っています。だから私は、元の文字列を取得し、それを選択から情報を連結して文字列を修正したい。理想的にはそれはのようになります。MySQL:結果を連結した列を更新する

UPDATE table as t 
SET t.string = SELECT CONCAT(t.string, 
          (SELECT fix FROM othertable where id=t.id) 
          ); 

しかし、もちろん、私はconcatを使用していることはできません。 私は他の方法ではあまり遠くないと言わなければならない。
誰もがアイデアを持っていますか?

答えて

1

、あなたは単にCONCATSELECTキーワードをドロップすることができます:

UPDATE table as t 
SET t.string = CONCAT(t.string, 
         (SELECT fix FROM othertable where id=t.id) 
        ); 

サブクエリが複数の値を返す可能性がある場合は、クイックフィックスはGROUP_CONCATを適用することができこのように:

UPDATE table as t 
SET t.string = CONCAT(t.string, 
         (SELECT GROUP_CONCAT(fix) FROM othertable where id=t.id) 
        ); 
+0

素晴らしい、ありがとう、これは治療を働いた。 – mark

0

は、以下を試してください:

UPDATE 
table as t 

INNER JOIN 
othertable as o 

ON 
t.id = o.id 

SET 
t.string = CONCAT(t.string, o.fix) 

ノート(上記のように)MySQLでは、それは一種の異なるからキーワードを使用していませんMSSQL以上だということ。サブクエリがちょうど一つの値を返すことが保証されている場合は