ঠিক যেমন @ জেমস বলেছেন, এটি সমস্ত রেকর্ড অর্ডার করবে, তারপরে প্রথম 20 টি সারি পাবে।
যেমনটি হ'ল, আপনার 20 টি প্রথম প্রকাশিত নিবন্ধগুলি পাওয়ার গ্যারান্টি রয়েছে, নতুনগুলি প্রদর্শিত হবে না।
আপনার পরিস্থিতিতে, আমি আপনাকে যুক্ত desc
করতে পরামর্শ দিচ্ছি order by publish_date
, আপনি যদি নতুন নিবন্ধগুলি চান তবে সর্বশেষতম নিবন্ধটি প্রথমটি হবে।
যদি আপনাকে ফলাফলটিকে আরোহণের ক্রমে রাখার প্রয়োজন হয় এবং এখনও 10 টি নতুন নিবন্ধ চান তবে আপনি mysql কে আপনার ফলাফলকে দুইবার সাজানোর জন্য বলতে পারেন।
নীচের এই কোয়েরিটি ফলাফলকে সাজানো এবং সাজানোর ফলাফলকে 10 এ সীমাবদ্ধ করবে (এটি প্রথম বন্ধনের অভ্যন্তরের কোয়েরি)। এটি এখনও ক্রমহ্রাসমান ক্রমে সাজানো হবে এবং আমরা এতে সন্তুষ্ট নই, তাই আমরা মাইএসকিএলকে আরও একবার এটি সাজানোর জন্য বলি। এখন আমরা সর্বশেষ সারিতে নতুন ফলাফল পেয়েছি।
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
গুলি সমান হয় তবে সেগুলি দ্বারা আদেশ প্রদান নির্ধারিত ফলাফল দেয় না, এর অর্থLIMIT
হ'ল আপনি যদি পৃষ্ঠাগুলির জন্য ব্যবহার করেন তবে আপনি বিভিন্ন পৃষ্ঠায় একই আইটেমগুলি পেয়ে শেষ করতে পারেন!