現在位置: よかブロ > 糟屋郡新宮町周辺の情報 > 私的日記 > 【MySQL】SELECTの結果を全て一気にUPDATEする方法

よかブロ
5月1日 20:06 - 新宮町 - 新宮町 ドアール美容室 【送迎サービス可】
勉強会〜

2014年7月3日 5:38 PM

【MySQL】SELECTの結果を全て一気にUPDATEする方法

記事のテーマ:私的日記

レコードを追加する時はINSERT INTOで複数一気に入力できるけど、レコードを更新するためのUPDATEは複数に対応していません。一つずつUPDATEの構文を書いて一つずつSQLを発行するととんでもないことになります。クエリーをFORで回して発行するなんて自殺行為です。

1
2
3
4
5
6
7
UPDATE
tbl1 AS t1,
( SELECT * , COUNT(col) AS goukei FROM tbl1 GROUP BY col) AS t2
SET
t1.col_sum = t2.goukei
WHERE
t1.col  = t2.col

こんな感じでサブクエリでUPDATEしたいカラム結果を出力して、それを元々のテーブルとイコールで付けると一気にUPDATEできる。しかもそこそこ早いので便利です。サブクエリを使わなくてもtemporary tableを作っても同じようにいけます。


にほんブログ村 地域生活(街) 九州ブログへ

あわせて読みたい