关于数据库:从MySQL中选择最后N行

Select last N rows from MySQL

我想从MySQL数据库的主键ID列中选择最后50行。目标是按ID按升序对行进行排序,这就是此查询不起作用的原因。

1
2
3
4
5
6
SELECT
    *
FROM
    `table`
ORDER BY id DESC
LIMIT 50;

同样值得注意的是,行可以被操作(删除),这也是下面的查询也不起作用的原因。

1
2
3
4
5
6
7
8
9
10
SELECT
    *
FROM
    `table`
WHERE
    id > ((SELECT
            MAX(id)
        FROM
            chat) - 50)
ORDER BY id ASC;

问题:如何从MySQL数据库中检索最后n行,这些行可以被操作并按asc顺序排列?


您可以使用子查询进行此操作:

1
2
3
4
SELECT * FROM (
    SELECT * FROM table ORDER BY id DESC LIMIT 50
) sub
ORDER BY id ASC

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


1

如果您有一个日期字段存储聊天的发送日期(和时间),或者每行中都有递增(按说明排序)或指定(按ASC排序)数据的任何字段,请将其作为第二列,在第二列中对数据进行排序。

这就是我的工作!!!!!希望有帮助!!!!!


保存资源生成一个查询,不需要进行嵌套查询