小编典典

仅SQL偏移量

sql

是否可以跳过X个第一行,并在一个查询中选择所有其他行?像那样:

abc
def
ghi
jkl
mno
========= start selecting all from here =========
pqr
stu
vwx
yz

它将选择:pqr,stu,vwx,yz

我尝试使用LIMIT和OFFSET完成此操作,但是问题是表是动态的,而且我不知道应该输入哪个LIMIT(我不知道表中有多少行)。


阅读 167

收藏
2021-04-28

共1个答案

小编典典

如果只需要最后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偏移无限行

但是,如果您 确实 有一个自动递增的主键,并且它与您要选择的行相对应,我建议:

SELECT field1, field2 FROM table
WHERE id > X;
2021-04-28