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


15

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

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

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

Ответы:


23

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

SET show = NOT show

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

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

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

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


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 = ?;
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.