首页 文章

从MySQL中选择最后N行

提问于
浏览
92

我想在名为 id 的列中选择MySQL数据库的最后50行,即 primary key . 目标是行应按 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;

Question :如何从MySQL数据库中检索可以操作并处于ASC顺序的最后N行?

3 回答

  • 175

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

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

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

  • 6
    SELECT * FROM table ORDER BY id DESC,datechat desc LIMIT 50
    

    如果您有一个日期字段,用于存储发送聊天的日期(和时间),或者任何以递增方式填写的字段(按DESC排序)或desinscrementally(按ASC排序)每行数据将其作为第二列哪些数据应该是订购的 .

    这对我有用!!!!希望它会有所帮助!!!!

  • 3
    SELECT * FROM table ORDER BY id DESC LIMIT 50
    

    保存资源进行一次查询,不需要进行嵌套查询

相关问题