Bagaimana cara mengganti bidang boolean dengan sql di postgresql?

15

Ada bidang showyang merupakan booleantipe di postgesql.

Saya ingin menulis sql untuk memperbarui tabel itu, untuk mengganti nilai pertunjukan. Jika itu true, itu menjadi false, jika itu false, itu menjadi true.

Apa itu mungkin?

Freewind
sumber

Jawaban:

23

Ini akan melakukan:

SET show = NOT show

jadi nilai

TRUEmenjadi FALSE,

FALSEmenjadi TRUE,

UNKNOWN( NULL) tetap UNKNOWN.

ypercubeᵀᴹ
sumber
1
@a_horse_with_no_name: Ya, tapi saya harus menulis sesuatu untuk menutupi batasan 30 karakter. Karena kita sudah punya TRUEdan FALSE, variasi UNKNOWNsesuai sudah :)
ypercubeᵀᴹ
Ini luar biasa, elegan, dan persis apa yang saya inginkan. Sangat senang ini bukan hanya MySQL yang mungkin.
Tiba
1

Berikut ini akan berubah FALSEatau NULLke TRUE, dan TRUEke FALSE:

UPDATE tablename SET fieldname = NOT COALESCE( fieldname, 'f' ) WHERE keyvalue = ?;
Kevin Traas
sumber