मुझे लगता है कि आप वहां 99% थे:
UPDATE table
SET A = IF(A > 20, 20, IF(A < 20 && A > 1, A, 0))
WHERE A IS NOT NULL;
&& A > 1
जोड़ें दूसरे IF स्टेटमेंट के लिए और आपकी तीसरी शर्त संतुष्ट है।
संपादित करें:
प्रति @ आंद्रे की टिप्पणी प्रश्न और सुझाव है कि नेस्टेड IF
पढ़ना मुश्किल है, आप इसे कुछ प्रश्नों के रूप में भी कर सकते हैं जो कोई अनावश्यक काम नहीं करते हैं और पढ़ने योग्य हैं:
UPDATE table SET A = 20 WHERE A > 20;
UPDATE table SET A = 0 WHERE A <= 1;
जब A NULL होता है, तो यह इनमें से किसी भी शर्त को पूरा नहीं करेगा, और इस प्रकार यह निर्दिष्ट करने की आवश्यकता को समाप्त कर देता है कि A, NULL नहीं है।
इसके बाद, तीसरी शर्त की कोई आवश्यकता नहीं है जैसा कि @Andre ने सुझाव दिया था। यदि A, 1 और 20 के बीच में है, तो वह यथावत रह जाता है।
अंत में, ए को 0 पर सेट करना जहां ए 1 से कम या उसके बराबर है, असामान्य लगता है। 1 के मानों को 0 में बदल दिया जाएगा। यदि आप केवल 1 से कम (नकारात्मक मानों सहित) मानों को 0 पर सेट करना चाहते हैं, तो आपको <
को स्वैप करना चाहिए। <=
. के लिए ।