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?

Antworten:


23

Das wird es tun:

SET show = NOT show

also ein Wert von

TRUEwird FALSE,

FALSEwird TRUE,

UNKNOWN( NULL) bleibt UNKNOWN.


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 = ?;
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.