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

SQL सर्वर के लिए MySQL LIMIT क्लॉज समतुल्य

SQL सर्वर 2012 में, ANSI मानक OFFSET . के लिए समर्थन है / FETCH वाक्य - विन्यास। मैंने के बारे में ब्लॉग किया यह और यहां आधिकारिक दस्तावेज़ (यह ORDER BY . का विस्तार है ) SQL सर्वर 2012 के लिए परिवर्तित आपका सिंटैक्स होगा:

SELECT ID, Name, Price, Image 
  FROM Products 
  ORDER BY ID ASC 
  OFFSET (@start_from - 1) ROWS -- not sure if you need -1
    -- because I don't know how you calculated @start_from
  FETCH NEXT @items_on_page ROWS ONLY;

इससे पहले, आपको ROW_NUMBER() . सहित विभिन्न समाधान का उपयोग करने की आवश्यकता है तरीका। देखें यह लेख और फॉलो-ऑन चर्चा . यदि आप SQL Server 2012 पर नहीं हैं, तो आप मानक सिंटैक्स या MySQL के गैर-मानक LIMIT का उपयोग नहीं कर सकते हैं लेकिन आप अधिक वर्बोज़ समाधान का उपयोग कर सकते हैं जैसे:

;WITH o AS
(
    SELECT TOP ((@start_from - 1) + @items_on_page)
         -- again, not sure if you need -1 because I 
         -- don't know how you calculated @start_from
      RowNum = ROW_NUMBER() OVER (ORDER BY ID ASC)
      /* , other columns */
    FROM Products
)
SELECT 
    RowNum
    /* , other columns */
FROM
    o
WHERE
    RowNum >= @start_from
ORDER BY
    RowNum;

इस बिल्ली को त्वचा देने के कई अन्य तरीके हैं, यह सबसे कुशल होने की संभावना नहीं है लेकिन वाक्यविन्यास-वार शायद सबसे सरल है। मेरा सुझाव है कि मेरे द्वारा पोस्ट किए गए लिंक की समीक्षा करने के साथ-साथ प्रश्न की टिप्पणियों में दिए गए डुप्लिकेट सुझावों की समीक्षा करें।



  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 में AUTO_INCREMENT को कैसे पढ़ें और रीसेट करें

  2. MySQL स्ट्रिंग बदलें

  3. मॉनिटरिंग Percona XtraDB क्लस्टर - प्रमुख मेट्रिक्स

  4. MySQL समय को कैसे बदलें

  5. क्लाउड में वर्डप्रेस MySQL डेटाबेस कैसे सेटअप करें