Php Mysql按调整排序

Php Mysql按调整排序,php,mysql,sql-order-by,Php,Mysql,Sql Order By,我有一个包含近100个字段的数据库。 数据库结构是 id |评论|时间 我只需要获取5条最新记录,我可以使用“按时间顺序描述”获取这些记录。但在打印这些记录时,我需要先打印这5条记录中最早的记录,然后以相反的方式进行操作,最新记录将最后打印。确定,在以行数限制的升序获取结果集之后 您可以这样做,以相反的顺序降序打印它们 $data= array(); while ($row = mysql_fetch_assoc($result)) { $data[] = $row; } $recor

我有一个包含近100个字段的数据库。 数据库结构是

id |评论|时间


我只需要获取5条最新记录,我可以使用“按时间顺序描述”获取这些记录。但在打印这些记录时,我需要先打印这5条记录中最早的记录,然后以相反的方式进行操作,最新记录将最后打印。

确定,在以行数限制的升序获取结果集之后

您可以这样做,以相反的顺序降序打印它们

$data= array();
while ($row = mysql_fetch_assoc($result)) {
    $data[] = $row;
}

$records = array_reverse($data);

这可以通过

直接取自


确定,在以行数限制的升序获取结果集之后

您可以这样做,以相反的顺序降序打印它们

$data= array();
while ($row = mysql_fetch_assoc($result)) {
    $data[] = $row;
}

$records = array_reverse($data);

这可以通过

直接取自

您可以在结果列表上使用PHP的array_reverse函数

您可以在结果列表上使用PHP的array_reverse函数


您还可以使用类似以下内容:

select * from (select * from table_name where 1=1 order by time desc 
limit 5) as tbl order by tbl.time;
编辑如果您对该语句有很多访问权限,那么最好将其表示为物化视图。虽然mysql中没有具体化的视图,但是可以模拟它们


使用物化视图或模拟物化视图将大大优于建议的php方法。以上提到的大多数方法都会消耗大量内存。

您也可以使用类似的方法:

select * from (select * from table_name where 1=1 order by time desc 
limit 5) as tbl order by tbl.time;
编辑如果您对该语句有很多访问权限,那么最好将其表示为物化视图。虽然mysql中没有具体化的视图,但是可以模拟它们


使用物化视图或模拟物化视图将大大优于建议的php方法。不管怎么说,上面提到的大多数方法都会消耗大量内存。

我想你可以按照未经测试的方法做一些事情:

选择 * 从…起 选择 id、注释、时间 从…起 桌子 订购人 时间描述 限制5 订购人 时间ASC 更新 显然,派生表必须有自己的别名。其他的答案已经做到了这一点,所以我将加入这一行列。您将在下面找到经过修订和测试的查询:

选择 衍生的* 从…起 选择 id、注释、时间 从…起 桌子 订购人 时间描述 限制5 导出 订购人 导出时间ASC
顺便说一句,这是。

我想你可以做一些未经测试的事情:

选择 * 从…起 选择 id、注释、时间 从…起 桌子 订购人 时间描述 限制5 订购人 时间ASC 更新 显然,派生表必须有自己的别名。其他的答案已经做到了这一点,所以我将加入这一行列。您将在下面找到经过修订和测试的查询:

选择 衍生的* 从…起 选择 id、注释、时间 从…起 桌子 订购人 时间描述 限制5 导出 订购人 导出时间ASC 顺便说一句,这是