Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एक MySQL अद्यतन क्वेरी में यदि तब अन्य का उपयोग कैसे करें?

मुझे लगता है कि आप वहां 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 पर सेट करना चाहते हैं, तो आपको < को स्वैप करना चाहिए। <= . के लिए ।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या Sphinx/MySQL के साथ एक साथ दो तालिकाओं से डेटा प्राप्त करने का कोई बेहतर तरीका है?

  2. जांचें कि क्या वर्तमान तिथि दो तिथियों के बीच है + mysql क्वेरी का चयन करें

  3. 2038-01-19 के बाद MySQL from_unixtime?

  4. मुझे c# के लिए mysql.data.dll कहां मिल सकता है

  5. पीके या आईडी या mysql में अद्वितीय कॉलम के बिना तालिका से डुप्लिकेट किए गए रिकॉर्ड हटाएं