आपको परिणामों का आदेश देना होगा, और एक सीमा निर्धारित करनी होगी।
यह मानते हुए कि डेटाटाइम वह है जिसे आप ऑर्डर करना चाहते हैं:
$query = "
SELECT
lat,
lng,
DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime
FROM markers1 WHERE 1
ORDER BY datetime DESC
LIMIT 5
";
संपादित करें: ओपी की टिप्पणी का उत्तर देने के लिए:"परिणाम जो मुझे पहली क्वेरी के लिए पंक्ति 50 के लिए शुरू होता है और उसके बाद 49,48,47,46 क्या यह संभव है कि मैं इस शुरुआत को 46,47,48,49,50 से शुरू कर सकता हूं?"
आप या तो PHP में परिणाम के साथ ऐसा कर सकते हैं, पंक्तियों को लाकर और उन्हें एक सरणी में संग्रहीत करके और सरणी को उलट कर। मुझे विश्वास नहीं है कि आप रिवर्स में एक mysql परिणाम संसाधन के माध्यम से कुशलतापूर्वक लूप कर सकते हैं।
SQL क्वेरी में ऐसा करने के लिए, आपको मूल क्वेरी के साथ एक अस्थायी तालिका बनानी होगी:
$query = "
SELECT
lat,
lng,
DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime
FROM (
SELECT
lat,
lng,
datetime
FROM markers1 WHERE 1
ORDER BY datetime DESC
LIMIT 5
) AS tmp_markers
ORDER BY datetime ASC
";
प्रारंभिक क्वेरी के परिणाम का उपयोग एक नई क्वेरी में खोज करने के लिए तालिका के रूप में किया जाता है, जो डेटाटाइम आरोही द्वारा क्रमित होती है। मुझे बाहरी क्वेरी पर DATE_FORMAT लागू करना पड़ा क्योंकि हमें फिर से ऑर्डर करने के लिए डेटाटाइम फ़ील्ड की आवश्यकता है।