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

मैक्स फंक्शन जहां क्लॉज mysql

हम एक समग्र फ़ंक्शन के परिणाम का संदर्भ नहीं दे सकते (उदाहरण के लिए MAX() ) एक WHERE . में उसी का खंड SELECT

इस प्रकार की समस्या को हल करने के लिए मानक पैटर्न एक इनलाइन दृश्य का उपयोग करना है, कुछ इस तरह:

SELECT t.firstName
     , t.Lastname
     , t.id
  FROM mytable t
  JOIN ( SELECT MAX(mx.id) AS max_id
           FROM mytable mx
       ) m
    ON m.max_id = t.id

निर्दिष्ट परिणाम प्राप्त करने का यह सिर्फ एक तरीका है। समान परिणाम प्राप्त करने के लिए कई अन्य दृष्टिकोण हैं, और उनमें से कुछ दूसरों की तुलना में बहुत कम कुशल हो सकते हैं। अन्य उत्तर इस दृष्टिकोण को प्रदर्शित करते हैं:

 WHERE t.id = (SELECT MAX(id) FROM ... )

कभी-कभी, सबसे आसान तरीका यह है कि LIMIT के साथ ORDER BY का उपयोग किया जाए। (ध्यान दें कि यह सिंटैक्स MySQL के लिए विशिष्ट है)

SELECT t.firstName
     , t.Lastname
     , t.id
  FROM mytable t
 ORDER BY t.id DESC
 LIMIT 1

ध्यान दें कि यह केवल एक पंक्ति लौटाएगा; इसलिए यदि समान आईडी मान वाली एक से अधिक पंक्तियाँ हैं, तो यह उन सभी को वापस नहीं करेगा। (पहली क्वेरी उन सभी पंक्तियों को लौटा देगी जिनका आईडी मान समान है।)

इस दृष्टिकोण को एक से अधिक पंक्ति प्राप्त करने के लिए बढ़ाया जा सकता है, आप उन पांच पंक्तियों को प्राप्त कर सकते हैं जिनमें उच्चतम आईडी मान हैं, इसे LIMIT 5 में बदलकर .

ध्यान दें कि इस दृष्टिकोण का प्रदर्शन विशेष रूप से एक उपयुक्त सूचकांक के उपलब्ध होने पर निर्भर है (अर्थात 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. मैं PHP का उपयोग करके MySQL डेटाबेस तालिका में अंतिम रिकॉर्ड कैसे प्राप्त करूं?

  2. कैसे केवल एसक्यूएल वाक्य रचना (PHP के बिना) का उपयोग कर mysql तालिका में ब्लॉब में छवियों को सम्मिलित करने के लिए?

  3. MySQL में TRIM () फ़ंक्शन कैसे काम करता है

  4. क्या दशमलव मान को MySQL में varchar के रूप में स्टोर करना अच्छा है?

  5. MySQL का प्रदर्शन:JOIN ON बनाम WHERE