首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >降阶MySQL极限

降阶MySQL极限
EN

Stack Overflow用户
提问于 2010-04-25 16:46:21
回答 4查看 145.4K关注 0票数 31

是否可以编写一个查询来使用相同的“限制(从),(计数)”,但向后得到结果?

例如,如果我在表中有8行,并且我想在两个步骤中得到5行,我会:第一步查询:

代码语言:javascript
复制
select * from table limit 0, 5

第一步的结果:

代码语言:javascript
复制
first 5 rows;

第二步查询:

代码语言:javascript
复制
select * from table limit 5, 5

第二步结果:

代码语言:javascript
复制
last 3 rows;

但我想反之亦然。我的意思是,从第一步开始,我想要最后3行,从第二步开始,我想要5第一行。谢谢你的回答

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2010-04-25 16:53:10

不你不该这么做。如果没有ORDER BY子句,就不应该依赖结果从查询到查询的顺序相同。在测试期间,它可能工作得很好,但是顺序是不确定的,以后可能会中断。用命令。

代码语言:javascript
复制
SELECT * FROM table1 ORDER BY id LIMIT 5

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

代码语言:javascript
复制
SELECT * FROM table1 ORDER BY id DESC LIMIT 3

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

票数 44
EN

Stack Overflow用户

发布于 2020-05-10 01:15:10

假设我们有一个有列时间的表,您需要最后5个条目,但是您希望它们按照asc顺序返回给您,而不是desc,您是这样做的:

代码语言:javascript
复制
select * from ( select * from `table` order by `time` desc limit 5 ) t order by `time` asc
票数 4
EN

Stack Overflow用户

发布于 2010-04-25 16:48:09

是的,您可以交换这两个查询。

代码语言:javascript
复制
select * from table limit 5, 5

select * from table limit 0, 5
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2708992

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档