SQL
DBデータの一括置換
2012年11月02日
データベースに登録しているデータを一気に置換するコマンドはないかと調べてみました。
【replace】関数で実現できるようです。
tableZに
id column1
1 dataA ・・・
2 dataB ・・・
3 dataA ・・・
・
・
・
というデータがあり、【data】を【field】に変更したい場合、
update tableZ set column1 = replace(column1, 'data', 'filed');
で変更できます。
変更後は
id column1
1 fieldA ・・・
2 fieldB ・・・
3 fieldA ・・・
・
・
・
になります。
使ったことがある気がしますが、忘れてました。
ここまでは何の問題もなかったのですが、updateが処理した件数を取ってみて、驚きました。
ありえない数だったのです。
該当する件数は100件ほどなのに、処理件数は1000件近かったのです。
どうやら処理件数はデータ全件数になるようです。
全ての行に対してreplaceを実行するからでしょう。
ああ、驚いた。
【replace】関数で実現できるようです。
tableZに
id column1
1 dataA ・・・
2 dataB ・・・
3 dataA ・・・
・
・
・
というデータがあり、【data】を【field】に変更したい場合、
update tableZ set column1 = replace(column1, 'data', 'filed');
で変更できます。
変更後は
id column1
1 fieldA ・・・
2 fieldB ・・・
3 fieldA ・・・
・
・
・
になります。
使ったことがある気がしますが、忘れてました。
ここまでは何の問題もなかったのですが、updateが処理した件数を取ってみて、驚きました。
ありえない数だったのです。
該当する件数は100件ほどなのに、処理件数は1000件近かったのです。
どうやら処理件数はデータ全件数になるようです。
全ての行に対してreplaceを実行するからでしょう。
ああ、驚いた。
コメント