Musisz uporządkować wyniki i ustawić limit.
Zakładając, że data i godzina jest tym, co chciałeś zamówić:
$query = "
SELECT
lat,
lng,
DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime
FROM markers1 WHERE 1
ORDER BY datetime DESC
LIMIT 5
";
EDYTUJ: Aby odpowiedzieć na komentarz OP:„wynik, który otrzymuję, to początek wiersza 50 dla pierwszego zapytania, a następnie 49,48,47,46 Czy to możliwe, że mogę uzyskać ten początek z wiersza 46,47,48,49,50?”
Możesz to zrobić z wynikiem w PHP, pobierając wiersze i przechowując je w tablicy oraz odwracając tablicę. Nie wierzę, że można wydajnie zapętlić zasób wyników mysql w odwrotnej kolejności.
Aby to zrobić w zapytaniu SQL, musisz utworzyć tabelę tymczasową z oryginalnym zapytaniem:
$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
";
Wynik początkowego zapytania jest używany jako tabela do wyszukiwania w nowym zapytaniu, uporządkowanym rosnąco według daty i godziny. Musiałem zastosować DATE_FORMAT w zewnętrznym zapytaniu, ponieważ potrzebujemy pola daty i godziny, aby zamówić ponownie.