是否可以跳过X第一行,并在一个查询中选择所有其他行? 像那样:
abc
def
ghi
jkl
mno
========= start selecting all from here =========
pqr
stu
vwx
yz
它将选择:pqr,stu,vwx,yz
我试图用LIMIT和OFFSET完成它,但问题是表是动态的,我不知道应该放哪个LIMIT(我不知道表中有多少行)。
答案 0 :(得分:4)
如果你只想要最后N行,试试这个:
SELECT field1, field2 FROM table
ORDER BY some_column DESC
LIMIT N;
这会根据some_column
的顺序为您提供最后几条记录。
如果不能使用任何其他主键,您可以使用自动递增主键(希望有一个)来建立行的顺序。
如果您想要跳过前X行(您在问题中指明)并获取所有行直到结束,请尝试以下操作:
SELECT field1, field2 FROM table
ORDER BY some_column ASC
LIMIT 18446744073709551615 OFFSET X;
对于后一种情况,请参阅:MySQL Offset Infinite Rows
但是,如果你做有一个自动递增的主键,并且它与你想要选择的行相对应,我建议:
SELECT field1, field2 FROM table
WHERE id > X;