2017-06-28 2 views
0

Ich habe eine Abfrage, die funktionieren scheint:PostgreSQL UPDATE alle Zeilen in einem Array zu etwas, während alle Zeilen nicht aktualisiert in Array etwas anderes

UPDATE questions SET active=TRUE WHERE id=ANY ([1, 5, 7]); 

Aber ich möchte auch alle anderen Zeilen active=FALSE

einstellen

im Grunde möchte ich das Äquivalent laufen diese beiden Zeilen

UPDATE questions SET active=FALSE; 
UPDATE questions SET active=TRUE WHERE id=ANY ([1, 5, 7]); 

zu tun, aber ich möchte das, wenn möglich in einer einzigen Abfrage erreichen. Gibt es eine Möglichkeit, dies zu tun?

Antwort

2

die Bedingung als Booleschen Wert verwenden zu setzen:

UPDATE questions SET active = (id = ANY(array[1, 5, 7])); 
Verwandte Themen