第n行之后的所有行?

时间:2009-12-18 00:44:42

标签: mysql

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

SELECT * FROM table WHERE 1=1;

只有我希望它排除前5名。谢谢。

4 个答案:

答案 0 :(得分:7)

使用数字很大的限制作为第二个参数。

select * from myTable limit 5,18446744073709551615;

来自MySQL Docs

  

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

     

SELECT * FROM tbl LIMIT 95,18446744073709551615;

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

答案 1 :(得分:5)

SELECT * FROM table ORDER BY somecolumn LIMIT 5,1000

http://dev.mysql.com/doc/refman/5.1/en/select.html

[LIMIT {[offset,] row_count | row_count OFFSET offset}]

答案 2 :(得分:0)

您在寻找 LIMIT 吗?

SELECT * FROM table LIMIT 5,9999999

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

请参阅:http://dev.mysql.com/doc/refman/5.5/en/select.html

答案 3 :(得分:0)

如果您的列的值可以排序(并且是唯一的),比如ID1,您可以在 pure SQL中执行此操作(例如,不使用MySQL特定的LIMIT),如下所示(语法为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)