¿Cómo alternar un campo booleano por sql en postgresql?


15

Hay un campo showque es un booleantipo en postgesql.

Quiero escribir un sql para actualizar esa tabla, para alternar el valor de show. Si es true, se convierte false, si es false, se convierte true.

¿Es posible?

Respuestas:


23

Esto lo hara:

SET show = NOT show

entonces un valor de

TRUEse convierte FALSE,

FALSEse convierte TRUE,

UNKNOWN( NULL) se queda UNKNOWN.


1
@a_horse_with_no_name: Sí, pero tuve que escribir algo para cubrir la limitación de 30 caracteres. Como ya teníamos TRUEy FALSE, una variación UNKNOWNfue apropiada :)
ypercubeᵀᴹ

Esto es impresionante, elegante y exactamente lo que quería. Muy contento de que esto no solo sea posible MySQL.
retirado el

1

Lo siguiente girará FALSEo NULLhacia TRUE, y TRUEhacia FALSE:

UPDATE tablename SET fieldname = NOT COALESCE( fieldname, 'f' ) WHERE keyvalue = ?;
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.