Как переключить логическое поле с помощью sql в postgresql?

15

Существует поле, showкоторое является booleanтипом в postgesql.

Я хочу написать SQL для обновления этой таблицы, чтобы переключить значение шоу. Если это true, это становится false, если это false, это становится true.

Является ли это возможным?

Freewind
источник

Ответы:

23

Это будет делать:

SET show = NOT show

так что значение

TRUEстановится FALSE,

FALSEстановится TRUE,

UNKNOWN( NULL) остается UNKNOWN.

ypercubeᵀᴹ
источник
1
@a_horse_with_no_name: Да, но мне пришлось написать что-то, чтобы покрыть ограничение в 30 символов. Так как у нас уже было TRUEи FALSE, вариант UNKNOWNбыл уместен :)
ypercubeᵀᴹ
Это потрясающе, элегантно и именно то, что я хотел. Ультра рад, что это не только возможно MySQL.
sudowned
1

Следующее повернется FALSEили NULLк TRUE, и TRUEк FALSE:

UPDATE tablename SET fieldname = NOT COALESCE( fieldname, 'f' ) WHERE keyvalue = ?;
Кевин Траас
источник