結果を注文し、制限を設定する必要があります。
日時が注文したいものであると仮定します:
$query = "
SELECT
lat,
lng,
DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime
FROM markers1 WHERE 1
ORDER BY datetime DESC
LIMIT 5
";
編集: OPのコメントに答えるには、「私が取得する結果は、最初のクエリの行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を適用する必要がありました。