猿问

MySQL偏移无穷行

MySQL偏移无穷行

我想要构造一个查询,它显示一个表中的所有结果,但从表的开头被5所抵消。据我所知,MySQL的LIMIT需要一个限制和一个偏移。有什么办法吗?



慕盖茨4494581
浏览 611回答 3
3回答

千巷猫影

从MySQL限制手册:要从某个偏移量中检索到结果集末尾的所有行,可以为第二个参数使用一些较大的数字。此语句检索第96行到最后一行的所有行:SELECT * FROM tbl LIMIT 95, 18446744073709551615;

弑天下

正如您所提到的,限制是必需的,所以您需要使用最大的限制,即18446744073709551615(最大未签名的BIGINT)。SELECT * FROM somewhere LIMIT 18446744073709551610 OFFSET 5

一只甜甜圈

正如其他答案所指出的,mysql建议使用18446744073709551615作为限制中的记录数,但请考虑以下几个问题:如果返回18,446,744,073,709,551,615条记录,您会做什么?事实上,如果你有10亿条记录,你会怎么做?也许你想要超过10亿张唱片,但我想说的是,你的数字是有限度的。想要,小于18分之一个。为了稳定性、优化以及可能的可用性,我建议对查询设置一些有意义的限制。这也将减少对那些从未见过那个神奇的数字的人的困惑,并且有一个额外的好处,那就是至少有多少你愿意同时处理的记录。如果你真的必须从你的数据库中得到所有的18个五分之一的记录,也许你真正想要的是以1亿的增量获取它们,并循环1840亿次。
随时随地看视频慕课网APP
我要回答