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

यदि स्थिति क्वेरी निष्पादित करती है, अन्यथा अन्य क्वेरी निष्पादित करें

संपादित करें: संग्रहीत कार्यविधि की आवश्यकता के बारे में मैंने नीचे जो कहा वह सत्य नहीं है। इसे आजमाएं:

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 अभिव्यक्तियों के साथ होगा!

एक आखिरी संपादन:किसी भी वास्तविक दुनिया के उदाहरण में, मैं शायद अपने आवेदन में सशर्त बिट करूँगा, और एक बार जब मैंने तय किया कि मुझे क्या खोजना है, तो बस एसक्यूएल (या एक ओआरएम जो मेरी एसक्यूएल उत्पन्न करेगा) को सौंप दें।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. PHP लूप क्रोनजॉब के रूप में कार्य करता है [केवल एक उदाहरण चल रहा है सुनिश्चित करें]

  2. mysql डंप - कुछ टेबल डेटा को बाहर करें

  3. MySQL 5.7.10 में JSON डेटा टाइप कॉलम को कैसे अपडेट करें?

  4. ORD () उदाहरण – MySQL

  5. mysql पिवट/क्रॉसस्टैब क्वेरी