Вам необходимо упорядочить результаты и установить лимит.
Предполагая, что дата / время - это то, что вы хотели заказать:
$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:
Чтобы ответить на комментарий ОП: «результат, который я получаю, это начало 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 к внешнему запросу, потому что нам нужно поле datetime, чтобы упорядочить снова.