MySQL从降序开始限制

fay*_*aya 19 mysql

是否可以编写查询以使用相同的"LIMIT(from),(count)",但是向后获得结果?

例如,如果我在表中有8行,并且我希望分两步获得5行,那么我将:第一步查询:

select * from table limit 0, 5
Run Code Online (Sandbox Code Playgroud)

第一步结果:

first 5 rows;
Run Code Online (Sandbox Code Playgroud)

第二步查询:

select * from table limit 5, 5
Run Code Online (Sandbox Code Playgroud)

第二步结果:

last 3 rows;
Run Code Online (Sandbox Code Playgroud)

但我想反过来说.我的意思是从第一步开始我想要最后3行,从第二步开始我想要5行.谢谢您的回答

Mar*_*ers 32

不,你不应该这样做.如果没有ORDER BY子句,则不应该依赖于从查询到查询的结果顺序.它可能在测试期间很好地工作,但顺序是不确定的,可能会在以后破坏.使用订单.

SELECT * FROM table1 ORDER BY id LIMIT 5
Run Code Online (Sandbox Code Playgroud)

顺便说一下,获取最后3行的另一种方法是颠倒顺序并选择前三行:

SELECT * FROM table1 ORDER BY id DESC LIMIT 3
Run Code Online (Sandbox Code Playgroud)

即使结果集中的行数不总是8,这也总是有效.