如何从我的mysql中选择5个最新的行

use*_*527 3 php mysql phpmyadmin

我想知道sql命令从我的表中检索5个最新行?下面是我的SQL查询.我该怎么办,为了能够选择5行最新行基来进行处理?

$query = 
"SELECT lat, lng, DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS 
  datetime FROM markers1 WHERE 1";
Run Code Online (Sandbox Code Playgroud)

Jac*_*cob 7

您需要订购结果,并设置限制.

假设datetime是你想订购的:

$query = "
    SELECT 
        lat, 
        lng, 
        DATE_FORMAT(datetime,'%W %M %D, %Y %T') AS datetime 
    FROM markers1 WHERE 1
    ORDER BY datetime DESC
    LIMIT 5
";
Run Code Online (Sandbox Code Playgroud)

编辑: 回答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
";
Run Code Online (Sandbox Code Playgroud)

初始查询的结果用作在新查询中搜索的表,该查询按日期时间升序排序.我必须在外部查询上应用DATE_FORMAT,因为我们需要再次按日期时间字段排序.