मैन्युअल से
, यह 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 जैसे अन्य डेटाबेस में काम नहीं करेगा।