我有这个:
$getWallCommentQuery2 = mysql_query("SELECT * FROM users_wallcomments WHERE wallID = '$displayWall[id]' ORDER BY date DESC LIMIT 2");
while($show = mysql_fetch_array($getWallCommentQuery2)){
echo $show["comment"] . " <br> ";
}
现在,我的数据库:
INSERT INTO `users_wallcomments` VALUES (1, 401, 1, 2, '1284056799', 'test kommentar blabla1');
INSERT INTO `users_wallcomments` VALUES (2, 401, 1, 1, '1284540210', 'test test comment2');
INSERT INTO `users_wallcomments` VALUES (3, 401, 1, 1, '1284540225', 'nr3 kommentar');
INSERT INTO `users_wallcomments` VALUES (4, 401, 1, 1, '1284540237', 'nr4 kommentar');
第五个字段..(数字以 1284.. 开头)是日期 unix 时间戳。现在我想根据顶部的查询对其进行排序,限制为 2;
它限制为两个,但当我按日期 DESC 进行排序时,它并没有正确排序。
我收到的是最后一个 3th(id) 和上面的 4th(id)?我希望最后排在第 4 位(因为它有最新的日期戳,如您所见,它有 37 个,第三个有 25 个)但它仍然排在第 3 位。
怎么了?
最佳答案
将 DESC
更改为 ASC
按降序 (DESC
) 排序的日期将总是最晚的日期排在最前面,最早的日期最后。
如果您按升序 (ASC
) 对日期进行排序,您将首先获得 ID 为 3 的条目,然后是 ID 为 4 的条目。
更新 如果您只希望最后 2 行按日期升序排序,请尝试以下操作:
SELECT * FROM
(SELECT * FROM users_wallcomments WHERE wallID = '$displayWall[id]' ORDER BY date DESC LIMIT 2) recentWallComments
ORDER BY date ASC
关于PHP:按 DESC 排序不行吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3716982/