2016-08-02 12 views
1

Hier ist meine Tabelle:Wie werden zwei verschiedene Zeilen nach einer Abfrage aktualisiert?

// mytable 

+----+------+ 
| id | num | 
+----+------+ 
| 1 | 400 | 
| 2 | 200 | 
| 3 | 200 | 
| 4 | 250 | 
+----+------+ 

Und hier wird angestrebtes Ergebnis:

+----+------+ 
| id | num | 
+----+------+ 
| 1 | 390 | 
| 2 | 200 | 
| 3 | 220 | 
| 4 | 250 | 
+----+------+ 

Wie Sie sehen, habe ich 10 wo id = 1, abgezogen und ich habe 20 wo id = 3

hinzugefügt

Hier ist meine Abfrage:

UPDATE mytable SET num = num +/- (CASE WHEN num = 1 THEN 10 WHEN num = 3 THEN 20 END) 
WHERE id IN (1,3) 

Wie kann ich + or - verwalten?

Antwort

9

Verwenden Sie einfach eine negative Zahl in dem Fall Aussage:

UPDATE mytable 
SET num = num + CASE WHEN id = 1 THEN -10 ELSE 20 END 
WHERE id IN (1,3) 
+0

Oh .. scheint einfach .. danke .. upvote – stack

Verwandte Themen