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

MYSQL में सशर्त जहां खंड

आप इसे AND . के साथ कर सकते हैं और OR जब तक आप पर्याप्त कोष्ठक का उपयोग करते हैं।

साथ ही मैं यह मान रहा हूं कि activities.OrderBy शून्य हो सकता है। यदि ऐसा नहीं है तो आप शून्य जांच को हटा सकते हैं:

SELECT activities.*, 
       activitytypes.orderby 
FROM   activities 
       LEFT OUTER JOIN activitytypes 
                    ON activities.typeid = activitytypes.typeid 
WHERE  activities.userid = 86 
       AND activities.typeid NOT IN ( 5, 10, 11, 12, 19 ) 
       AND ( ( activities.orderby = 1 
               AND activities.starttime >= '2013-08-26 04:00:00' 
               AND activities.endtime <= '2013-08-27 04:00:00' ) 
              OR ( ( activities.orderby IS NULL 
                      OR activities.orderby != 1 ) 
                   AND activities.activitydate = '2013-08-26' ) ) 
ORDER  BY activitytypes.orderby, 
          activities.starttime 

वैकल्पिक रूप से, यदि आप अभी भी CASE . का उपयोग करना चाहते हैं , आपको बस अपना CASE . बंद करना होगा END का उपयोग कर कथन , इस तरह:

SELECT          activities.*, 
                activitytypes.orderby 
FROM            activities 
LEFT OUTER JOIN activitytypes 
ON              activities.typeid = activitytypes.typeid 
WHERE           activities.userid = 86 
AND             activities.typeid NOT IN ( 5, 10, 11, 12, 19 ) 
AND             ( 
                  CASE 
                  WHEN activities.orderby = 1 THEN
                    activities.starttime >= '2013-08-26 04:00:00' AND activities.endtime <= '2013-08-27 04:00:00'
                  ELSE
                    activities.activitydate = '2013-08-26' 
                  END
                ) 
ORDER BY        activitytypes.orderby, 
                activities.starttime



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. mysql को स्विफ्ट से कैसे कनेक्ट करें?

  2. मैं इस क्वेरी को तेज़ी से कैसे चलाऊंगा?

  3. सामान्य त्रुटि:1366 सिद्धांत 2.1 और Zend प्रपत्र अद्यतन के साथ गलत पूर्णांक मान

  4. अनुक्रमणिका क्वेरी द्वारा धीमी खोज LIKE% MYSQL

  5. पिछले 30 दिनों से mysql परिणाम प्राप्त करना