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

SQL को प्रत्येक चयन अनुरोध पर ROW_NUMBER और COUNT मिलते हैं

यह शायद पेजिंग की अनुमति देने के लिए है। पंक्तियों की कुल संख्या दिखाना वास्तव में महंगा हो सकता है।

विभिन्न प्रकार के डेटाबेस पर अच्छी तरह से काम करने का एक तरीका यह है कि काम को दो भागों में विभाजित किया जाए। सबसे पहले, आप एक अस्थायी तालिका में प्रासंगिक पंक्तियों की आईडी एकत्र करते हैं। दूसरा, आप पूरे डेटासेट को क्वेरी करते हैं। पहले भाग में एकत्र किया गया डेटा आपको एक निश्चित पृष्ठ पर पंक्तियों की कुल संख्या और पंक्तियों की आईडी की गणना करने का एक आसान तरीका देता है।

यहाँ SQL सर्वर के लिए एक मोटा उदाहरण है। ध्यान दें कि उदाहरण विंडो फ़ंक्शन जैसे row_number() . पर निर्भर नहीं करता है , जो MySQL में उपलब्ध नहीं हैं।

create table #id_list (rn int identity, pk int);

insert   #id_list
         (pk)
select   customer_id
from     customers
where    name like '%Joe%';

select   (select  count(*) from #id_list) as total_rows
,        rn -- The row's number
,        name
,        birth_date
,        ... -- Other columns
from     #id_list id
join     customer c
on       c.pk = c.customer_id
where    rn between 15 and 29; -- Second 15-row page 

वैसे, यदि संभव हो, तो मैं इस आवश्यकता को डिजाइनरों को दोबारा जांचने के लिए वापस कर दूंगा कि क्या यह बहुत समय खर्च करने लायक है। यदि आपको पंक्तियों की कुल संख्या प्रदर्शित करने की आवश्यकता नहीं है तो यह बहुत आसान है।



  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. php/जावास्क्रिप्ट में डेटाबेस से अधिकतम संख्या इनपुट टेक्स्ट सेट करें

  4. मारियाडीबी गलत क्रम लेकिन MySQL में सही

  5. मैं एक डेटाबेस से निहित तालिका की प्रतिलिपि बनाना चाहता हूं और दूसरी डेटाबेस तालिका में सम्मिलित करना चाहता हूं