レコードを追加する時は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を作っても同じようにいけます。