如果我指定一个数字,比如5,在第5行之后哪个查询会给我所有的行?像,
SELECT * FROM table WHERE 1=1;
只有我希望它排除前5名。谢谢。
答案 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
要限制的第二个参数只是一个大数字来获取所有行。相应调整。
答案 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)