संपादित करें: संग्रहीत कार्यविधि की आवश्यकता के बारे में मैंने नीचे जो कहा वह सत्य नहीं है। इसे आजमाएं:
SELECT CASE WHEN ( (SELECT COUNT(*) FROM table WHERE term LIKE "term") > 4000 )
THEN <QUERY A>
ELSE <QUERY B>
END
यह वास्तव में एक केस एक्सप्रेशन है, और यह एक संग्रहित खरीद के बाहर ठीक काम करता है :-)
उदाहरण के लिए:
mysql> SELECT CASE WHEN ( 5 > 4 ) THEN ( SELECT 'foo' ) ELSE ( SELECT 'bar' ) END;
+---------------------------------------------------------------------+
| CASE WHEN ( 5 > 4 ) THEN ( SELECT 'foo' ) ELSE ( SELECT 'bar' ) END |
+---------------------------------------------------------------------+
| foo |
+---------------------------------------------------------------------+
1 row in set (0.01 sec)
mysql> SELECT CASE WHEN ( 3 > 4 ) THEN ( SELECT 'foo' ) ELSE ( SELECT 'bar' ) END;
+---------------------------------------------------------------------+
| CASE WHEN ( 3 > 4 ) THEN ( SELECT 'foo' ) ELSE ( SELECT 'bar' ) END |
+---------------------------------------------------------------------+
| bar |
+---------------------------------------------------------------------+
1 row in set (0.00 sec)
ऐतिहासिक रुचि के लिए नीचे पुराना उत्तर, क्योंकि यह पहले से ही अपवोट इकट्ठा करता है:
मुझे लगता है कि आप नीचे का उपयोग कर सकते हैं, लेकिन केवल एक संग्रहीत प्रक्रिया के अंदर:
CASE (SELECT COUNT(*) FROM table WHERE term LIKE "term") > 4000
WHEN 1 THEN <QUERY A>
ELSE <QUERY B>
END CASE
यह एक CASE
है स्टेटमेंट, जैसा कि CASE
. से अलग है अभिव्यक्ति... https://dev.mysql.com/doc /refman/5.0/hi/case.html
अधिक खूनी विवरण है।
असल में, मुझे सामान्य रूप से संदेह है कि यदि आप सशर्त रूप से विभिन्न प्रश्नों को निष्पादित करना चाहते हैं, तो आपको संग्रहीत प्रक्रियाओं की ओर देखने की आवश्यकता होगी - मैं गलत हो सकता हूं, लेकिन इस बिंदु पर मेरी आंत महसूस हो रही है। यदि आप इसे कर सकते हैं, तो यह संभवतः CASE अभिव्यक्तियों के साथ होगा!
एक आखिरी संपादन:किसी भी वास्तविक दुनिया के उदाहरण में, मैं शायद अपने आवेदन में सशर्त बिट करूँगा, और एक बार जब मैंने तय किया कि मुझे क्या खोजना है, तो बस एसक्यूएल (या एक ओआरएम जो मेरी एसक्यूएल उत्पन्न करेगा) को सौंप दें।पी>