Du skal bestille resultaterne og sætte en grænse.
Forudsat at dato og klokkeslæt er det, du ønskede at bestille på:
$query = "
SELECT
lat,
lng,
DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime
FROM markers1 WHERE 1
ORDER BY datetime DESC
LIMIT 5
";
EDIT: For at besvare OP's kommentar:"resultatet, jeg får, er start for række 50 for første forespørgsel, og det efterfølges af 49,48,47,46. Er det muligt, at jeg kan få denne start fra række 46,47,48,49,50?"
Du kan enten gøre dette med resultatet i PHP ved at hente rækkerne og gemme dem i et array og vende arrayet. Jeg tror ikke, du effektivt kan sløjfe en mysql-ressource omvendt.
For at gøre dette i SQL-forespørgslen skal du oprette en midlertidig tabel med den oprindelige forespørgsel:
$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
";
Resultatet af den indledende forespørgsel bruges som tabel til at søge i en ny forespørgsel, der sorterer efter dato og klokkeslæt stigende. Jeg var nødt til at anvende DATE_FORMAT på den ydre forespørgsel, fordi vi har brug for feltet dato og klokkeslæt for at bestille inden igen.