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

SQL क्वेरी सशर्त रूप से एक कुंजी मान सूची के आधार पर रिकॉर्ड पुनर्प्राप्त करने के लिए

यहां चुनौती यह है कि आपको इनपुट के रूप में अपने एसक्यूएल स्टेटमेंट के एपीआई प्रतिक्रिया से प्राप्त इन मूल्यों को पास करना होगा और इनपुट के आधार पर गतिशील रूप से कोई तुलना नहीं बनाकर आउटपुट उत्पन्न करना होगा।

अब, अगर मैं आपके बैक-एंड प्लेटफॉर्म से परिचित होता, तो मैं अधिक उपयुक्त समाधान देता, लेकिन जैसा कि मुझे Node.js से अवगत नहीं है, मेरे समाधान में केवल आवश्यक SQL कथन और शेष भाग शामिल होंगे जिनकी आपको आवश्यकता है DIY.

पहली चीज़ जो आपको करने की ज़रूरत है वह है इस एपीआई प्रतिक्रिया को पार्स करना और इन मानों को डेटा संरचना में संग्रहीत करना।

अब, एक Temporary table बनाएं अपने Node.js . से कोड और इन इनपुट मानों को इस तालिका में संग्रहीत करें।

  CREATE TEMPORARY TABLE Input (id INT, value INT);

उस डेटा संरचना से इस तालिका में डेटा जोड़ें।

अब, निम्न क्वेरी चलाएँ और आपको वह मिलेगा जो आप चाहते हैं:

SELECT skp.quest_id
FROM SKILL_PREREQUISITES skp 
GROUP BY quest_id
HAVING COUNT(skp.quest_id) =
                     ( SELECT COUNT(quest_id)
                       FROM Input i
                       JOIN SKILL_PREREQUISITES sp
                       ON sp.prerequisite_skill_id = i.id
                       AND sp.skill_value <= i.value
                       WHERE skp.quest_id = sp.quest_id
                      )

डेमो फिडल



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. सी #:एसक्यूएल क्वेरी बिल्डर क्लास

  2. क्या मुझे प्रत्येक क्वेरी से पहले MySQL सर्वर को पिंग करना चाहिए?

  3. MySQL, NULL या खाली स्ट्रिंग डालने के लिए बेहतर है?

  4. डेटाबेस मॉडलिंग:Amazon जैसे उत्पादों को श्रेणीबद्ध कैसे करें?

  5. MySQL रोलबैक क्वेरी