這是我的表看起來像值在mysql中重新回到0更新查詢後
_____________________________________________________________
| id | val1 | val2 | val3 | val4 | val5 | val6 |
|______|________|________|________|________|________|________|
| 1 | 1300 | 1300 | 0 | 2000 | 1300 | 0 |
|______|________|________|________|________|________|________|
| 10 | 0 | 0 | 0 | 2000 | 0 | 0 |
|______|________|________|________|________|________|________|
現在我更新
UPDATE points set val5 = CASE WHEN id = 10 THEN val5 + 500 WHEN id = 1 THEN val5 + 500 END WHERE id IN ('10','1')
這是我的表看起來像
_____________________________________________________________
| id | val1 | val2 | val3 | val4 | val5 | val6 |
|______|________|________|________|________|________|________|
| 1 | 1800 | 1800 | 0 | 2000 | 1800 | 0 |
|______|________|________|________|________|________|________|
| 10 | 500 | 500 | 0 | 2000 | 500 | 0 |
|______|________|________|________|________|________|________|
| 157 | 0 | 0 | 0 | 800 | 0 | 0 |
|______|________|________|________|________|________|________|
現在我再次更新(這是它破的地方)
UPDATE points set val5 = CASE WHEN id = 1 THEN val5 + 500 END, val6 = CASE WHEN id = 10 THEN val6 + 500 END WHERE id IN ('10','1')
我的表看起來像這樣
_____________________________________________________________
| id | val1 | val2 | val3 | val4 | val5 | val6 |
|______|________|________|________|________|________|________|
| 1 | 2300 | 2300 | 0 | 2000 | 2300 | 0 |
|______|________|________|________|________|________|________|
| 10 | 1000 | 0 | 500 | 2000 | 0 | 500 |
|______|________|________|________|________|________|________|
| 157 | 0 | 0 | 0 | 800 | 0 | 0 |
|______|________|________|________|________|________|________|
| 158 | 0 | 0 | 0 | 800 | 0 | 0 |
|______|________|________|________|________|________|________|
你有沒有注意到VAL2和val5如何回到零,即使我沒有告訴它?我錯過了什麼?
'id'是一個字符串還是數字? – Linger 2014-09-18 19:39:57
我很抱歉,但我無法看到您的更新會如您的示例所示繼續添加行。 – 2014-09-18 19:45:05
該部分是我正在顯示的查詢之前的另一個查詢 – 2014-09-19 00:35:31