我有一個工作表(結果),MySQL的更新具有以下結構(不要問,我沒有建立的話)與同桌SUM
id | record_type | user_id | answer_id | choice | score | total | email
-------------------------------------------------------------------------------
1 email xxxxxxx 0 [email protected]
2 answer xxxxxxx aaaaaa A 0
3 answer xxxxxxx bbbbbb A 0
4 answer xxxxxxx cccccc B 10
5 email yyyyyyy 0 [email protected]
6 answer yyyyyyy aaaaaa A 0
7 answer yyyyyyy bbbbbb A 0
8 answer yyyyyyy cccccc A 0
9 email zzzzzzz 0 [email protected]
10 answer zzzzzzz aaaaaa A 0
11 answer zzzzzzz bbbbbb A 0
12 answer zzzzzzz cccccc B 10
這是一個調查和調查提交後,正確答案的分數值發生了變化。我已經運行了更新以將「正確」答案的分數值設置爲10,現在我需要更新record_type:email的行總數,以便我們聯繫獲獎者。
的目標將是設置行1,5總列和9爲10,0和10
我在想這樣的事情
UPDATE results SET total = SUM(score)
FROM results GROUP BY user_id WHERE user_id = user_id
但是那並不是」看起來不錯,我擔心我可能會走錯路。
這個工程。非常好。謝謝。 – byron 2013-02-21 23:28:54
問題給你們......我在〜400K行的桌子上運行它,它正在崩潰(可能內存不足)。任何建議要解決?比如,一種以塊運行查詢的方法? – byron 2013-02-25 18:55:29
這看起來很「複雜」,但實際上很容易實現,並且像夢一樣工作(您需要一個獨特的索引,我必須爲我的要求創建一個) – zzapper 2016-06-24 12:26:30