如何在MySQL中获取从x行开始的所有行

如何在MySQL中获取从x行开始的所有行,mysql,limit,offset,Mysql,Limit,Offset,在MySQL中,如何从X行开始检索表中的所有行?例如,从第6行开始: LIMIT 5,0 这不会返回任何结果,因此我尝试了以下方法: LIMIT 5,ALL 仍然没有结果(sql错误) 我不是在寻找分页功能,只是检索从特定行开始的所有行限制52000对我来说似乎太过分了。不知怎的,谷歌似乎没有给我一些答案。希望你能帮忙 谢谢根据: 要检索从某个偏移量到结果集末尾的所有行,可以对第二个参数使用一些较大的数字。此语句检索从第96行到最后一行的所有行: 这是,2^64-1 MyISAM表中的行数限

在MySQL中,如何从X行开始检索表中的所有行?例如,从第6行开始:

LIMIT 5,0
这不会返回任何结果,因此我尝试了以下方法:

LIMIT 5,ALL
仍然没有结果(sql错误)

我不是在寻找分页功能,只是检索从特定行开始的所有行<代码>限制52000对我来说似乎太过分了。不知怎的,谷歌似乎没有给我一些答案。希望你能帮忙

谢谢

根据:

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

这是,2^64-1

MyISAM表中的行数限制为2^32(~4.295E+09)。如果使用--with big tables选项构建MySQL,行限制将增加到(2^32)^2(1.844E+19)行。参见第2.16.2节“典型配置选项”。Unix和Linux的二进制发行版是使用此选项构建的


目前我所知道的唯一解决办法是按照你说的去做,并给出一个高得离谱的数字作为限制的第二个参数。我不认为指定一个低的数字或一个高的数字在性能上有任何区别,mysql只会在结果集的末尾或当它达到您的限制时停止返回行。

如果您希望获得最后x行数,最简单的方法是
排序DESC
并限制到前x行。当然,
排序将减慢查询速度。但是如果您反对将任意大的数字设置为第二个
LIMIT
arg,那么这就是解决方法。

下一个查询也应该有效,并且在我看来更有效

SELECT * FROM mytbl WHERE id != 1 ORDER BY id asc

通过排序,查询将立即找到id并跳过这一行,因此接下来的行他将不再检查id是否为1。

我认为您不需要为“按限制全选”输入最大值。找到表的计数,然后将其用作最大限制就足够了。

谢谢Greg,您的答案再完整不过了:)回答得好,我调整了手动链接,使其转到页面的正确位置,并删除了大部分重复的答案:)可能是因为SolidSmile没有要求这样做。他不知道最后的x行数。他知道前x行数。所以这个答案解决了不同的问题。
SELECT * FROM mytbl WHERE id != 1 ORDER BY id asc