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

एक पंक्ति और उसके चारों ओर पंक्तियों का चयन करें

केवल एक ORDER BY खंड को UNION . के लिए परिभाषित किया जा सकता है डी क्वेरी। इससे कोई फर्क नहीं पड़ता कि आप UNION का उपयोग करते हैं या UNION ALL . MySQL LIMIT . का समर्थन करता है UNION . के कुछ हिस्सों पर क्लॉज 'd क्वेरी, लेकिन ऑर्डर को परिभाषित करने की क्षमता के बिना यह अपेक्षाकृत बेकार है।

MySQL में रैंकिंग फ़ंक्शंस का भी अभाव है, जिसे आपको डेटा में अंतराल से निपटने की आवश्यकता होती है (प्रविष्टियों को हटाए जाने के कारण गायब)। चयन कथन में वृद्धिशील चर का उपयोग करने का एकमात्र विकल्प है:

SELECT t.id, 
       @rownum := @rownum+1 as rownum 
  FROM MEDIA t, (SELECT @rownum := 0) r

अब हम पंक्तियों की क्रमागत क्रमांकित सूची प्राप्त कर सकते हैं, ताकि हम इसका उपयोग कर सकें:

WHERE rownum BETWEEN @midpoint - ROUND(@midpoint/2) 
                 AND @midpoint - ROUND(@midpoint/2) [email protected]

@midpoint, @midpoint - ROUND(@midpoint/2) के लिए मान के रूप में 7 का उपयोग करना 4 . का मान लौटाता है . कुल 10 पंक्तियाँ प्राप्त करने के लिए, @upperlimit मान को 10 पर सेट करें। यहाँ पूरी क्वेरी है:

SELECT x.* 
  FROM (SELECT t.id, 
               @rownum := @rownum+1 as rownum 
          FROM MEDIA t, 
               (SELECT @rownum := 0) r) x
 WHERE x.rownum BETWEEN @midpoint - ROUND(@midpoint/2) AND @midpoint - ROUND(@midpoint/2) + @upperlimit

लेकिन अगर आप अभी भी LIMIT का उपयोग करना चाहते हैं , आप उपयोग कर सकते हैं:

  SELECT x.* 
    FROM (SELECT t.id, 
                 @rownum := @rownum+1 as rownum 
            FROM MEDIA t, 
                 (SELECT @rownum := 0) r) x
   WHERE x.rownum >= @midpoint - ROUND(@midpoint/2)
ORDER BY x.id ASC
   LIMIT 10


  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. MySQL:तालिका की प्राथमिक कुंजी को गतिशील रूप से निर्धारित करें

  4. mysql के डिफ़ॉल्ट 'mysql' डेटाबेस को पुनर्प्राप्त/पुन:कैसे बनाएं?

  5. LAST_INSERT_ID() $db->insert_id के बराबर नहीं है?