2014年2月7日金曜日

やってもうた(1) Mysqlで間違ったカラムに入れてしまったデータを入れ替える。

データベースからデータベースへのデータ移行で、カラムを間違ってデータを入れてしまった。
 テーブルには、companyとpersonがあるのだが・・・。

company:山田太郎
person:山田商事株式会社

…という具合に、間違えてしまった。大量のデータがあり、最初からやり直すことが出来ない状態・・・。

色々と調べてやってみたのが、下のSQLです。

単純に…

UPDATE tbl1 SET company = person, person = company;

…とやってみました。結果は…

company:山田商事株式会社
person:山田商事株式会社

なるほどねー。さらにやっちゃいました。。。
まあ、そりゃそーかという結果ではあります。

こういうときは、こうやるといいみたいです。

SET @swp = '';
UPDATE tbl1 SET company = CONCAT(LEFT((@swp := company),0) , person) ,person = @swp;

値が更新されるときに、一旦変数に蓄えて、その文字列を切り詰めた上で、交換する文字列を設定するということですかね。



0 件のコメント:

コメントを投稿