2016-08-09 67 views
0

Ich habe eine Tabelle MYTABLE mit Spalten product, version und valid (Boolean).Eine Spalte für viele Datensätze aktualisieren

Lets sind einige Aufzeichnungen sagen wie:

Vor

product1 - 1 - 0 
product1 - 2 - 0 
product1 - 3 - 1 

Was ich will, ist der zweite Satz mit dem product1 und Version 2 und aktualisieren ihre gültige Spalte 1, auszuwählen und dann Aktualisieren Sie alle anderen Datensätze mit dem gleichen Produkt und die Version ihren gültigen Wert auf 0. Also nach der Tabelle wäre wie folgt:

Nach

product1 - 1 - 0 
product1 - 2 - 1 
product1 - 3 - 0 

Ich versuchte

UPDATE MYTABLE 
SET valid = EXISTS(
        SELECT * FROM MYTABLE AS T2 
        WHERE T2.product = 'product1' AND T2.version=2) 

und es änderte alle Datensätze gültig Spalte bis 0 ...

Antwort

1

Sie versuchen, 2 UPDATES ausführen kann

UPDATE LABELS 
SET valid = 1 where product='product1' AND version=2; 

UPDATE LABELS 
SET valid = 0 where product='product1' AND version!=2;