ダリの雑記:WEBプログラム版

SQLだけでフィールド間のコピーを行う

メモ。

たとえば以下のようなテーブルがあったとして

「entry」テーブル
ID title body save_name
1 タイトル1 内容1
2 タイトル2 内容2
3 タイトル3 内容3

「title」フィールドの値を、「save_name」フィールドにまるまるコピーしたい!という場合は以下のようなSQLを実行しましょう。

UPDATE `entry` SET `save_name` = `title`;

■実行結果

「entry」テーブル
ID title body save_name
1 タイトル1 内容1 タイトル1
2 タイトル2 内容2 タイトル2
3 タイトル3 内容3 タイトル3

 

そのままコピーするのではなく、コピー元の値に文字列を追加して、新しいフィールドに格納したい場合は、以下のようになります。

例)「title」フィールドの値に「hoge_」という文字列を足して、「save_name」フィールドに格納する。

UPDATE `entry` SET `save_name` = concat("hoge_",`title`);

■実行結果

「entry」テーブル
ID title body save_name
1 タイトル1 内容1 hoge_タイトル1
2 タイトル2 内容2 hoge_タイトル2
3 タイトル3 内容3 hoge_タイトル3

 

この文字列の結合方法が分からず

`save_name` ="hoge_"+`title`

とか

`save_name` ="hoge_".`title`

とか訳わからんをしてしまいました^^;

ちゃんと勉強しなきゃね。

 

■参考にさせていただいたサイト

モバイルバージョンを終了