answer से शुरू @chaos द्वारा दिया गया, लेकिन कुछ संशोधनों के साथ:
-
आपको हमेशा
ORDER BY
. का उपयोग करना चाहिए यदि आपLIMIT
. का उपयोग करते हैं . RDBMS तालिका के लिए कोई अंतर्निहित आदेश की गारंटी नहीं है। आप आमतौर पर प्राथमिक कुंजी के क्रम में पंक्तियाँ प्राप्त करें, लेकिन आप इस पर भरोसा नहीं कर सकते और न ही यह पोर्टेबल है। -
यदि आप द्वारा अवरोही क्रम में आदेश देते हैं, तो आपको तालिका में पंक्तियों की संख्या पहले से जानने की आवश्यकता नहीं है।
-
आपको एक सहसंबंध नाम देना होगा (उर्फ तालिका उपनाम) एक व्युत्पन्न तालिका में।
यहाँ मेरी क्वेरी का संस्करण है:
SELECT `id`
FROM (
SELECT `id`, `val`
FROM `big_table`
ORDER BY `id` DESC
LIMIT $n
) AS t
WHERE t.`val` = $certain_number;