Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/62.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 仅SQL偏移量_Mysql_Sql - Fatal编程技术网

Mysql 仅SQL偏移量

Mysql 仅SQL偏移量,mysql,sql,Mysql,Sql,是否可以跳过前X行,并在一个查询中选择所有其他行? 就像这样: abc def ghi jkl mno ========= start selecting all from here ========= pqr stu vwx yz 它将选择:pqr、stu、vwx、yz 我曾尝试使用LIMIT和OFFSET来实现这一点,但问题是表是动态的,我不知道应该设置哪一个限制(我不知道表中有多少行)。如果只需要最后N行,请尝试以下方法: SELECT field1, field2 FROM table

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

abc
def
ghi
jkl
mno
========= start selecting all from here =========
pqr
stu
vwx
yz
它将选择:pqr、stu、vwx、yz


我曾尝试使用LIMIT和OFFSET来实现这一点,但问题是表是动态的,我不知道应该设置哪一个限制(我不知道表中有多少行)。

如果只需要最后N行,请尝试以下方法:

SELECT field1, field2 FROM table
ORDER BY some_column DESC
LIMIT N;
SELECT field1, field2 FROM table
ORDER BY some_column ASC
LIMIT 18446744073709551615 OFFSET X;
这将根据
某些列的顺序提供最后几条记录

如果没有其他方法可以使用,您可以使用自动递增的主键(希望有一个)来建立行的顺序

如果您想跳过前X行(您在问题中指出)并获取所有行直到结束,请尝试以下操作:

SELECT field1, field2 FROM table
ORDER BY some_column DESC
LIMIT N;
SELECT field1, field2 FROM table
ORDER BY some_column ASC
LIMIT 18446744073709551615 OFFSET X;
对于后一种情况,请参见:

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

SELECT field1, field2 FROM table
WHERE id > X;

是否要限制特定记录,例如“pqr”?您所说的“动态”是什么意思?“动态”表示可以添加更多行。所以我不知道表中到底有多少行。我只想选择前5行之后的所有行。就这些。你能给我们一些主题的上下文应用程序吗?我想他可能想知道如何使用一些范围或任何东西来友好地设置
LIMIT
,以便使用MySQL。没有办法动态地设置
LIMIT
,好吧-查看链接问题了解更多信息。哇,这看起来很奇怪。我认为以某种方式计算表中的行数比减去偏移量(5)更优雅,这就是限制。但感谢您的回答,您完全可以从表中发出类似
selectcount(*)的查询
首先获取行数,然后使用该行数计算
限制
。我更喜欢一次查询而不是两次查询。@JYelton-是的,我认为这个解决方案无论如何都会更快,尽管它看起来有点难看。:-)