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

क्या MySQL शॉर्ट सर्किट IF () फ़ंक्शन करता है?

इसका उत्तर हाँ है।

यहाँ एक परीक्षण है, इस तथ्य को साबित करने के लिए @variables का उपयोग करते हुए:

SET @var:=5;  
SELECT IF(1 = 0, (@var:[email protected] + 1), @var ); -- using ':=' operator to modify 'true' expr @var 
SELECT IF(1 = 1, @var, (@var:[email protected] + 1) ); -- using ':=' operator to modify 'false' expr @var 
SELECT @var;

परिणाम तीनों SELECT क्वेरी में से '5' है।

यदि IF() फ़ंक्शन शॉर्ट सर्किट नहीं होता, तो परिणाम SELECT #1 से '5', और SELECT #2 से '6' और अंतिम "select @var" से '7' होता।

ऐसा इसलिए है क्योंकि 'सत्य' एक्सप्रेशन को कभी भी सिलेक्ट # 1 में निष्पादित नहीं किया जाता है और न ही # 2 को चुनने के लिए गलत एक्सप्रेशन निष्पादित किया जाता है।

ध्यान दें कि ':=' ऑपरेटर का उपयोग SQL क्वेरी के भीतर @var को संशोधित करने के लिए किया जाता है (चुनें, से, और जहां खंड)। आप इससे कुछ वाकई फैंसी/जटिल एसक्यूएल प्राप्त कर सकते हैं। मैंने SQL क्वेरी में 'प्रक्रियात्मक' तर्क लागू करने के लिए @vars का उपयोग किया है।

-- जे जोर्गेनसन --



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. रिलेशनल डेटाबेस में IPv6-संगत पते को कैसे स्टोर करें

  2. कोडइग्निटर के सक्रिय रिकॉर्ड के साथ डेटाबेस में अभी () सम्मिलित करना

  3. नोडज में mysql स्कीमा कैसे बनाएं

  4. PHP में त्रुटि शामिल है पथ नहीं ढूंढें

  5. क्वेरी हटाएं जो mysql में काम नहीं कर रही है