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

MySQL - केस बनाम आईएफ स्टेटमेंट बनाम आईएफ फ़ंक्शन

मैन्युअल से , यह if . जैसा दिखता है फ़ंक्शन case . का एक कम लचीला रूप है अभिव्यक्ति। उदाहरण के लिए, आप लिख सकते हैं:

select if(username = 'darxysaq', 'high', 'low') as awesomeness

और समतुल्य case . के साथ :

select case when username = 'darxysaq' then 'high' else 'low' end as awesomeness

लेकिन case अधिक लचीला है। यह एक से अधिक शाखाओं की अनुमति देता है, जैसे:

select case 
       when username = 'darxysaq' then 'high' 
       when username = 'john skeet' then 'medium' 
       else 'low' 
       end as awesomeness

और यह एक switch . की तरह काम कर सकता है :

select case username 
       when 'darxysaq' then 'high' 
       when 'john skeet' then 'medium' 
       else 'low' 
       end as awesomeness

अब if कथन एक पूरी तरह से अलग जानवर है। यह एक MySQL प्रक्रियाओं में नियंत्रण कथन है . स्टेटमेंट फॉर्म ऐसा दिखता है:

CREATE FUNCTION GetAwesomeness (username varchar(50))
RETURNS varchar(20)
BEGIN
   IF username = 'darxysaq' THEN
      return 'high';
   ELSEIF username = 'john skeet' THEN
      return 'medium';
   ELSE
     return 'low';
   END IF;
END; //

यहां स्टेटमेंट वर्जन के साथ SQL Fiddle है। ऐसा लगता है कि मिस्टर बीन वह सब नहीं है जो वह बनने के लिए बना है!

एक अंतिम नोट:case अभिव्यक्ति मानक SQL है और अधिकांश डेटाबेस में काम करती है। if फ़ंक्शन मानक SQL नहीं है और SQL सर्वर या PostgreSQL जैसे अन्य डेटाबेस में काम नहीं करेगा।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. त्रुटि 1265। txt फ़ाइल से डेटा लोड करने का प्रयास करते समय कॉलम के लिए डेटा छोटा कर दिया गया

  2. Myd, .myi, .frm फ़ाइलों से MySQL डेटाबेस को कैसे पुनर्प्राप्त करें

  3. अपरिभाषित फ़ंक्शन mysql_connect ()

  4. MySQL में दो कॉलम की तुलना कैसे करें

  5. MySQL में कनेक्शन का समय क्षेत्र बदलना