为了账号安全,请及时绑定邮箱和手机立即绑定

MySQL偏移无穷行

MySQL偏移无穷行

慕盖茨4494581 2019-07-13 14:44:30
MySQL偏移无穷行我想要构造一个查询,它显示一个表中的所有结果,但从表的开头被5所抵消。据我所知,MySQL的LIMIT需要一个限制和一个偏移。有什么办法吗?
查看完整描述

3 回答

?
千巷猫影

TA贡献1829条经验 获得超7个赞

MySQL限制手册:

要从某个偏移量中检索到结果集末尾的所有行,可以为第二个参数使用一些较大的数字。此语句检索第96行到最后一行的所有行:

SELECT * FROM tbl LIMIT 95, 18446744073709551615;


查看完整回答
反对 回复 2019-07-13
?
弑天下

TA贡献1818条经验 获得超8个赞

正如您所提到的,限制是必需的,所以您需要使用最大的限制,即18446744073709551615(最大未签名的BIGINT)。

SELECT * FROM somewhere LIMIT 18446744073709551610 OFFSET 5


查看完整回答
反对 回复 2019-07-13
?
一只甜甜圈

TA贡献1836条经验 获得超5个赞

正如其他答案所指出的,mysql建议使用18446744073709551615作为限制中的记录数,但请考虑以下几个问题:如果返回18,446,744,073,709,551,615条记录,您会做什么?事实上,如果你有10亿条记录,你会怎么做?

也许你想要超过10亿张唱片,但我想说的是,你的数字是有限度的。想要,小于18分之一个。为了稳定性、优化以及可能的可用性,我建议对查询设置一些有意义的限制。这也将减少对那些从未见过那个神奇的数字的人的困惑,并且有一个额外的好处,那就是至少有多少你愿意同时处理的记录。

如果你真的必须从你的数据库中得到所有的18个五分之一的记录,也许你真正想要的是以1亿的增量获取它们,并循环1840亿次。


查看完整回答
反对 回复 2019-07-13
  • 3 回答
  • 0 关注
  • 610 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信