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

MySQL जहां क्वेरी में - मैच द्वारा ऑर्डर करें

अगर मैं सही ढंग से समझता हूं तो आप परिणामों को अवरोही क्रम में मैचों की संख्या से क्रमबद्ध करना चाहते हैं। ऐसा करने के लिए, आप कोशिश कर सकते हैं:

SELECT movie
  FROM genre_rel 
 WHERE genre IN (1, 8, 3) 
 GROUP BY movie
 order by count(movie) desc

और यदि आप सभी मानदंडों से मेल खाने वाली फिल्में चाहते हैं, तो आप इसका उपयोग कर सकते हैं:

SELECT movie
  FROM genre_rel 
 WHERE genre IN (1, 8, 3) 
 GROUP BY movie
HAVING count(movie) = 3

अद्यतन:

यह सबसे अच्छा है जो मैं MySQL में कर सकता हूं। आप IN का उपयोग नहीं कर सकते क्योंकि आप फ़िल्टर के क्रम के बारे में जानकारी नहीं निकाल सकते। यदि आप व्युत्पन्न तालिका को फ़िल्टरिंग के साधन के रूप में जोड़ते हैं, तो आप इस जानकारी को जोड़ सकते हैं और इसका उपयोग स्थितिगत मिलानों के परिणाम दिखाने के लिए कर सकते हैं। ध्यान दें कि आप शैली_रेल तालिका में कोई आदेश देने की जानकारी प्रदान नहीं करते हैं, इसलिए आप वास्तव में प्रति फिल्म शैलियों के महत्व को नहीं जानते हैं। यह क्वेरी आपको मानदंड में शैलियों के महत्व के अवरोही क्रम से मेल खाने वाली फिल्में देगी:

SELECT movie
  FROM genre_rel 
  INNER join
  (
     select 1 genre, 1000 weight
     union all
     select 8, 100
     union all
     select 3, 10
  ) weights
 on genre_rel.genre = weights.genre
 GROUP BY movie
 order by sum(weight) desc

ध्यान दें कि 5 को छोड़कर सभी फिल्में सभी 3 शैलियों की हैं। यदि आप शैली_रेल में महत्व के क्रम का प्रतिनिधित्व करने वाला एक कॉलम जोड़ते हैं तो आप कुछ गणित (वजन - महत्व या कुछ इसी तरह) तैयार कर सकते हैं।



  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. MySQL में किसी कॉलम के लिए अधिकतम मान वाली पंक्ति का चयन कैसे करें?

  3. मेरे पास कई प्रश्न हैं जो सभी क्वेरी परिणामों को एक ही तालिका में मर्ज करना चाहते हैं

  4. विदेशी कुंजी उसी तालिका के कॉलम का संदर्भ देती है। मान सम्मिलित नहीं कर सकते

  5. django . में mysql में माइग्रेट करना