Wie kann man ein boolesches Feld durch SQL in postgresql umschalten?

15

Es gibt ein Feld, showdas ein booleanTyp in postgesql ist.

Ich möchte eine SQL schreiben, um diese Tabelle zu aktualisieren und den Wert von show umzuschalten. Wenn es ist true, wird es false, wenn es ist false, wird es true.

Ist es möglich?

Freewind
quelle

Antworten:

23

Das wird es tun:

SET show = NOT show

also ein Wert von

TRUEwird FALSE,

FALSEwird TRUE,

UNKNOWN( NULL) bleibt UNKNOWN.

ypercubeᵀᴹ
quelle
1
@a_horse_with_no_name: Ja, aber ich musste etwas schreiben, um die 30-Zeichen-Beschränkung abzudecken. Da wir schon TRUEund hatten FALSE, war eine Variation UNKNOWNangebracht :)
ypercubeᵀᴹ
Das ist großartig, elegant und genau das, was ich wollte. Sehr froh, dass dies nicht nur mit MySQL möglich ist.
3.
1

Folgendes wird sich wenden FALSEoder NULLan TRUEund TRUEan FALSE:

UPDATE tablename SET fieldname = NOT COALESCE( fieldname, 'f' ) WHERE keyvalue = ?;
Kevin Traas
quelle