MYSQL选择最后3行,按ASC排序

u3r8eeie  于 2023-01-20  发布在  Mysql
关注(0)|答案(4)|浏览(130)

我只是想选择一个职位上最新的3个评论,并有他们在ASC顺序排序。
这将选择最后3行,但我需要它们的顺序相反:

mysql_query("
SELECT * FROM comments WHERE postID='$id' AND state='0' ORDER BY id DESC LIMIT 3")
blmhpbnm

blmhpbnm1#

您可以稍后对其进行反向排序。

SELECT * 
FROM (SELECT * FROM comments
      WHERE postID='$id' 
        AND state='0' 
      ORDER BY id DESC 
      LIMIT 3) t
ORDER BY id ASC;
oxosxuxt

oxosxuxt2#

这也可以只在PHP中完成,而无需修改SQL查询,只需向后迭代结果集即可:

$res = mysql_query(...);
for($i=mysql_num_rows($res)-1; $i>=0; $i--) {
    //do whatever
}

我承认我不知道性能上的区别是什么(如果有的话),但这只是另一个可能适合您的选择。

uajslkp6

uajslkp63#

SELECT * FROM注解限制((SELECT COUNT(*)FROM注解)-2,3)排序依据id;
因为LIMIT的第一个参数(OffSet)从第0个索引开始,第二个参数给出了应拾取的记录数。

uelo1irk

uelo1irk4#

$result = mysqli_query($con,"SELECT * FROM (SELECT * FROM messeges WHERE username='{$_SESSION['username']}' ORDER BY id DESC LIMIT 3) t ORDER BY id ASC");

相关问题