Postgresql में sql द्वारा बूलियन फ़ील्ड को कैसे टॉगल करें?


15

एक क्षेत्र है showजो booleanपोस्टगेक्कल में एक प्रकार है।

मैं उस तालिका को अपडेट करने, शो के मूल्य को टॉगल करने के लिए एक 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 संभव नहीं है।
सफ़र किया

1

निम्नलिखित बदल जाएगी FALSEया NULLकरने के लिए TRUE, और TRUEकरने के लिए FALSE:

UPDATE tablename SET fieldname = NOT COALESCE( fieldname, 'f' ) WHERE keyvalue = ?;
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.