首页 > 解决方案 > PHP数据排序

问题描述

对于统计表,我使用 DESC over SQL 将数据提取为最后 5 条记录。但我拍摄的数据以 6、5、4、3、2 的形式出现。当我把它作为 ASC 时,我得到前 5 条记录而不是最后 5 条记录。通过将我想要制作的数据排序为 2,3,4,5,6 来获取最后 5 条记录

我使用的功能

$query = $db->query("SELECT * FROM `table` WHERE `username`='".$username."' ORDER BY id DESC LIMIT 5")

总之 ; 我作为 ASC 提取的最后一个数据在图表上颠倒列出,我希望它被排序为 2,3,4,5,6

我现在得到的结果

标签: phpmysql

解决方案


如果您只是拉一小部分,只需使用 PHP 内置函数,如 sort 或任何其他函数(https://www.php.net/manual/en/array.sorting.php

如果它是一个大型数据集,我会避免尝试直接在查询上执行此操作,如下所示:

$db->bind('username',$username);

$query = $db->query('
      SELECT * FROM (
         SELECT * FROM `table` WHERE `username` = :username ORDER BY id DESC
     ) qry ORDER BY id'
);

我没有测试查询,但我会做类似的事情。


推荐阅读