U moet de resultaten bestellen en een limiet instellen.
Ervan uitgaande dat datetime is wat je wilde bestellen op:
$query = "
SELECT
lat,
lng,
DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime
FROM markers1 WHERE 1
ORDER BY datetime DESC
LIMIT 5
";
BEWERKEN: Om de opmerking van OP te beantwoorden:"het resultaat dat ik krijg is start voor rij 50 voor de eerste zoekopdracht en het volgt 49,48,47,46. Is het mogelijk dat ik deze start krijg van rij 46,47,48,49,50?"
Je zou dit kunnen doen met het resultaat in PHP, door de rijen op te halen en op te slaan in een array en de array om te keren. Ik geloof niet dat je efficiënt in omgekeerde volgorde door een mysql-resultaatbron kunt bladeren.
Om dit in de SQL-query te doen, moet u een tijdelijke tabel maken met de originele query:
$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
";
Het resultaat van de eerste zoekopdracht wordt gebruikt als de tabel om in een nieuwe zoekopdracht te zoeken, die gesorteerd is op datum/tijd oplopend. Ik moest de DATE_FORMAT toepassen op de buitenste query omdat we het datetime-veld nodig hebben om opnieuw te bestellen.