Jak przełączać pole boolowskie przez sql w postgresql?


15

Istnieje pole, showktóre jest booleantypem w postgesql.

Chcę napisać sql, aby zaktualizować tę tabelę, aby przełączyć wartość show. Jeśli tak true, staje się false, jeśli tak false, to staje się true.

Czy to możliwe?

Odpowiedzi:


23

To wystarczy:

SET show = NOT show

więc wartość

TRUEstaje się FALSE,

FALSEstaje się TRUE,

UNKNOWN( NULL) zostaje UNKNOWN.


1
@a_horse_with_no_name: Tak, ale musiałem napisać coś, co obejmowałoby ograniczenie do 30 znaków. Ponieważ już mieliśmy TRUEi FALSE, UNKNOWNodpowiednia była odmiana :)
ypercubeᵀᴹ

To jest niesamowite, eleganckie i dokładnie to, czego chciałem. Bardzo się cieszę, że to nie tylko możliwe MySQL.
sudown

1

Następujące skręcą FALSElub NULLdo TRUEi i TRUEdo FALSE:

UPDATE tablename SET fieldname = NOT COALESCE( fieldname, 'f' ) WHERE keyvalue = ?;
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.