Comment basculer un champ booléen par sql dans postgresql?


15

Il y a un champ showqui est un booleantype dans postgesql.

Je veux écrire un sql pour mettre à jour cette table, pour basculer la valeur de show. Si c'est true, ça devient false, si c'est false, ça devient true.

C'est possible?

Réponses:


23

Cela fera:

SET show = NOT show

donc une valeur de

TRUEdevient FALSE,

FALSEdevient TRUE,

UNKNOWN( NULL) reste UNKNOWN.


1
@a_horse_with_no_name: Oui, mais j'ai dû écrire quelque chose pour couvrir la limite de 30 caractères. Puisque nous avions déjà TRUEet FALSE, une variation sur UNKNOWNétait appropriée :)
ypercubeᵀᴹ

C'est génial, élégant et exactement ce que je voulais. Ultra content que ce ne soit pas seulement possible MySQL.
2012

1

Les éléments suivants se tourneront vers FALSEou NULLvers TRUEet TRUEvers FALSE:

UPDATE tablename SET fieldname = NOT COALESCE( fieldname, 'f' ) WHERE keyvalue = ?;
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.