Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/55.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获取?_Mysql - Fatal编程技术网

在搜索特定数量的行之后,即使找不到该行,如何完成MySQL获取?

在搜索特定数量的行之后,即使找不到该行,如何完成MySQL获取?,mysql,Mysql,我有一个超过10万行的MySQL数据库,因此我需要进行搜索以仅获取最后1000行,因此如果在最后1000行中未找到它,则获取结束(即使未找到) 如果我的桌子是那样的 id name 1 AL 2 BL ... 1000 P12 1001 P15 我做了这样的提取:从myTable中选择*,其中name='AL'仅最后1000行ORDER BY id DESC(因为我不知道使用什么,所以我发明了最后1000行) 这应该返回空,因为我希望我的查询只在最后1000行上获得信息

我有一个超过10万行的MySQL数据库,因此我需要进行搜索以仅获取最后1000行,因此如果在最后1000行中未找到它,则获取结束(即使未找到)

如果我的桌子是那样的

id   name
1     AL
2     BL
...
1000  P12
1001  P15
我做了这样的提取:
从myTable中选择*,其中name='AL'仅最后1000行ORDER BY id DESC
(因为我不知道使用什么,所以我发明了最后1000行)

这应该返回空,因为我希望我的查询只在最后1000行上获得信息,而不是指定的第1001行上

使用“限制”字段不起作用,因为它会在找不到行时限制找到的行

有没有办法在MySQL中实现这一点?
谢谢大家!

如注释中所述,您可以使用
OFFSET
获取最后第1000条记录的
id
,然后
选择
id
大于该记录的
id
的记录

大概是这样的:

SELECT name 
FROM myTable 
WHERE id > (SELECT id FROM myTable ORDER BY id DESC LIMIT 1 OFFSET 1000)
AND name = 'AL'

你需要使用
OFFSET
OFFSET需要从哪一行开始,我需要得到最后的X行,而不知道它在哪一行。但是你明确地想要最后1000行,所以从第99000行开始就可以了。表中不完全是10000行,我不知道表中有多少行,它可以有250000行(在本例中为249000行)或315000行(在本例中为314000行),因此我无法指定行数,因为我不知道表当前有多少行,所以只需计算行数,然后使用该数字?