Як перемикати булеве поле на sql в postgresql?


15

Існує поле, showяке є booleanтипом у postgesql.

Я хочу написати sql для оновлення цієї таблиці, щоб змінити значення show. Якщо є 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.
затримано

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.