Bạn cần sắp xếp các kết quả và đặt giới hạn.
Giả sử ngày giờ là thứ bạn muốn đặt hàng:
$query = "
SELECT
lat,
lng,
DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime
FROM markers1 WHERE 1
ORDER BY datetime DESC
LIMIT 5
";
CHỈNH SỬA: Để trả lời nhận xét của OP:"kết quả mà tôi nhận được là bắt đầu cho Hàng 50 cho truy vấn đầu tiên và theo sau là 49,48,47,46. Liệu tôi có thể nhận được hàng bắt đầu từ hàng 46,47,48,49,50 này không?"
Bạn có thể làm điều này với kết quả trong PHP, bằng cách tìm nạp các hàng và lưu trữ chúng trong một mảng và đảo ngược mảng. Tôi không tin rằng bạn có thể lặp lại một cách hiệu quả tài nguyên kết quả mysql.
Để thực hiện việc này trong truy vấn SQL, bạn cần tạo một bảng tạm thời với truy vấn ban đầu:
$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
";
Kết quả của truy vấn ban đầu được sử dụng làm bảng để tìm kiếm trong một truy vấn mới, sắp xếp theo ngày giờ tăng dần. Tôi đã phải áp dụng DATE_FORMAT cho truy vấn bên ngoài vì chúng tôi cần trường ngày giờ để sắp xếp lại.