Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/66.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 第n行之后的所有行?_Mysql - Fatal编程技术网

Mysql 第n行之后的所有行?

Mysql 第n行之后的所有行?,mysql,Mysql,如果我指定一个数字,比如5,什么查询会给出第5行之后的所有行?像 SELECT * FROM table WHERE 1=1; 只有我想把前五名排除在外。谢谢。使用数字非常高的限制作为第二个参数 select * from myTable limit 5,18446744073709551615; 发件人: 要检索从某个偏移量到结果集末尾的所有行,可以对第二个参数使用一些较大的数字。此语句检索从第96行到最后一行的所有行: 从tbl LIMIT 9518446744073709551615中

如果我指定一个数字,比如5,什么查询会给出第5行之后的所有行?像

SELECT * FROM table WHERE 1=1;

只有我想把前五名排除在外。谢谢。

使用数字非常高的限制作为第二个参数

select * from myTable limit 5,18446744073709551615;
发件人:

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

从tbl LIMIT 9518446744073709551615中选择*

顺便说一句:你不需要1=1。它没有给查询添加任何值,只是杂乱无章

SELECT * FROM table ORDER BY somecolumn LIMIT 5,1000
你在寻找极限吗

要限制的第二个参数只是获取所有行的一个大数字。相应地调整


请参阅:

如果您有一个值可以排序且唯一的列,例如ID1,您可以在纯SQL中执行此操作,例如,不使用MySQL特定的限制,如下语法是Sybas ey,可能需要调整表别名和联接才能在MySQL上工作:

SELECT * FROM table WHERE ID1 not in
-- SELECT FIRST @N ROWS IN ACCENDNING ORDER
(SELECT t1.ID1 FROM table 't1', table 't2' 
 WHERE t1.ID1 < t2.ID2
 GROUP BY t1.ID1
 HAVING count(*) <= @N)

顺便说一下,您不需要在其中写入1=1。dupe:是的,昏昏欲睡的想法:这个查询不会检索到超过第1000行的任何内容。如果表格包含1000多行怎么办?@asph:您想检索多少行?我包括了限制语法的规范——若这不明显,那个么也许应该移到另一个字段?是的,那个只是占位符。这应该可以做到。谢谢呵呵!您将在哪里存储上述查询的结果?获取一组有限的行不是更符合逻辑吗?无论对系统上可用的内存来说,什么都是最佳的,执行一些操作并获取下一组行,等等。。。?不是说你的答案是错误的,只是说MySQL文档所说的一切都不是一个解决方案,更常见的是,它只是一个问题的答案。解决方案应该考虑性能和可行性。顺便说一句,文档中的一些大数字是2^64-1,这是未签名的最大值bigint@Fr0zenFyr…MySQL文档所说的一切都不是一个解决方案,更常见的是,它只是一个问题的答案——在这种情况下不是。我的答案中引用的部分是文章的一部分,而不是下面的用户评论部分。我不否认引用的是官方文件。我想说的是,docs中的语句非常一般,没有考虑可能的内存溢出。例如,一个查询的结果给出了>2^20个结果。我的评论只是针对这个警告,没有具体的回答。我在之前的评论中也提到过,这种问题可以通过循环来解决,例如,一次获得2^15个或更少的结果,处理它并获得下一个集合等等。有趣的答案。但是,如果MySQL未优化子查询,可能会让CPU心脏病发作。好的,那么将子查询的ID粘贴到未优化数据库的临时表中:
SELECT * FROM table LIMIT 5,9999999
SELECT * FROM table WHERE ID1 not in
-- SELECT FIRST @N ROWS IN ACCENDNING ORDER
(SELECT t1.ID1 FROM table 't1', table 't2' 
 WHERE t1.ID1 < t2.ID2
 GROUP BY t1.ID1
 HAVING count(*) <= @N)