一尘不染

从MySQL选择最后N行

mysql

我想在名为 id的 列( 主键)中 从MySQL数据库中选择最后50行。目标是行应该被分类 IDASC
秩序,这就是为什么这个查询不工作

SELECT 
    *
FROM
    `table`
ORDER BY id DESC
LIMIT 50;

同样值得注意的是,可以对行进行操作(删除),这就是为什么以下查询也不起作用的原因

SELECT 
    *
FROM
    `table`
WHERE
    id > ((SELECT 
            MAX(id)
        FROM
            chat) - 50)
ORDER BY id ASC;

问题 :如何从MySQL数据库中检索可以操纵并按ASC顺序排列的最后N行?


阅读 457

收藏
2020-05-17

共1个答案

一尘不染

您可以使用子查询来做到这一点:

SELECT * FROM (
    SELECT * FROM table ORDER BY id DESC LIMIT 50
) sub
ORDER BY id ASC

这将从中选择 最后 50行table,然后按升序对其进行排序。

2020-05-17