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

मैं WHERE क्लॉज में COALESCE () का बेहतर तरीके से उपयोग कैसे कर सकता हूं?

आप गणना दो अलग-अलग उपश्रेणियों के साथ कर सकते हैं:

select coalesce(qa2.subject, qa.subject) as question_subject,
       qa.body,
       ( (select count(*)
          from viewed_items vi
          where qa.related = vi.question_id
         ) +
         (select count(*)
          from viewed_items vi
          where qa.related is null and qa.id = vi.question_id
         )
        ) as total_question_viewed
from questions_and_answers qa left join
     questions_and_answers qa2
     on qa.related = qa.id 
where body like ':entry';

प्रत्येक सबक्वायरी के लिए इंडेक्स का उपयोग किया जा सकता है, इसलिए यह समग्र रूप से तेज़ होना चाहिए। वैसे, आपको NULL . के बारे में चिंता करने की ज़रूरत नहीं है मान, क्योंकि COUNT(*) एक सहसंबद्ध उपश्रेणी में हमेशा एक मान लौटाता है। अगर कुछ भी मेल नहीं खाता, तो मान 0 होगा ।




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर में (MySQL) LIMIT कैसे लिखें?

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

  3. पर्ल और MySQL में utf8 एन्कोडिंग

  4. sqlalchemy के साथ db mysql कैसे बनाएं?

  5. ग्रूवी का उपयोग करके MySQL से कनेक्ट करना