我想在名为id的列中选择MySQL数据库的最后50行,这是主键.目标是行应该被分类ID在ASC秩序,这就是为什么这个查询不工作
SELECT
*
FROM
`table`
ORDER BY id DESC
LIMIT 50;
Run Code Online (Sandbox Code Playgroud)
另外值得注意的是行可以被操作(删除),这就是为什么后续查询也不起作用的原因
SELECT
*
FROM
`table`
WHERE
id > ((SELECT
MAX(id)
FROM
chat) - 50)
ORDER BY id ASC;
Run Code Online (Sandbox Code Playgroud)
问题:如何从MySQL数据库中检索可以操作并处于ASC顺序的最后N行?
new*_*rey 208
您可以使用子查询执行此操作:
SELECT * FROM (
SELECT * FROM table ORDER BY id DESC LIMIT 50
) sub
ORDER BY id ASC
Run Code Online (Sandbox Code Playgroud)
这将从中选择最后 50行table
,然后按升序排序.
小智 15
SELECT * FROM table ORDER BY id DESC LIMIT 50
Run Code Online (Sandbox Code Playgroud)
节省资源 一键查询,无需嵌套查询
SELECT * FROM table ORDER BY id DESC,datechat desc LIMIT 50
Run Code Online (Sandbox Code Playgroud)
如果您有一个日期字段,用于存储发送聊天的日期(和时间),或者任何以递增方式填写的字段(按DESC排序)或desinscrementally(按ASC排序)每行数据将其作为第二列哪些数据应该是订购的.
这对我有用!!!! 希望它会有所帮助!!!!