जैसा कि @ जेम्स कहते हैं, यह सभी रिकॉर्डों का आदेश देगा, फिर पहले 20 पंक्तियों को प्राप्त करें।
जैसा कि ऐसा है, आपको 20 पहले प्रकाशित लेख प्राप्त करने की गारंटी है, नए नहीं दिखाए जाएंगे।
अपनी स्थिति में, मुझे लगता है कि आप जोड़ने की सलाह देते desc
करने के लिए order by publish_date
, यदि आप नवीनतम लेख चाहते हैं, तो नवीनतम लेख पहली बार किया जाएगा।
यदि आपको परिणाम को बढ़ते क्रम में रखने की आवश्यकता है, और अभी भी केवल 10 नवीनतम लेख चाहते हैं तो आप mysql को दो बार अपना परिणाम सॉर्ट करने के लिए कह सकते हैं।
नीचे दी गई यह क्वेरी परिणाम को नीचे लाएगी और परिणाम को 10 तक सीमित कर देगी (जो कि कोष्ठक के अंदर क्वेरी है)। यह अभी भी अवरोही क्रम में क्रमबद्ध होगा, और हम इससे संतुष्ट नहीं हैं, इसलिए हम mysql को इसे और अधिक समय तक क्रमबद्ध करने के लिए कहते हैं। अब हमारे पास अंतिम पंक्ति पर नवीनतम परिणाम है।
select t.article
from
(select article, publish_date
from table1
order by publish_date desc limit 10) t
order by t.publish_date asc;
यदि आपको सभी स्तंभों की आवश्यकता है, तो यह इस प्रकार किया जाता है:
select t.*
from
(select *
from table1
order by publish_date desc limit 10) t
order by t.publish_date asc;
जब मैं मैन्युअल रूप से विभिन्न चीजों के लिए डेटाबेस की जांच करने के लिए प्रश्न लिखता हूं तो मैं इस तकनीक का उपयोग करता हूं। मैंने इसे उत्पादन परिवेश में उपयोग नहीं किया है, लेकिन अब जब मैंने इसे चिह्नित किया, तो अतिरिक्त छंटाई प्रदर्शन को प्रभावित नहीं करती है।
publish_date
s समान हैं, तो उनके द्वारा आदेश देना निर्धारित परिणाम नहीं देता है, जिसका अर्थ है कि यदि आपLIMIT
पृष्ठांकन के लिए उपयोग करते हैं, तो आप अलग-अलग पृष्ठों पर समान आइटम प्राप्त कर सकते हैं!