在搜索特定数量的行之后,即使找不到该行,如何完成MySQL获取?
我有一个超过10万行的MySQL数据库,因此我需要进行搜索以仅获取最后1000行,因此如果在最后1000行中未找到它,则获取结束(即使未找到) 如果我的桌子是那样的在搜索特定数量的行之后,即使找不到该行,如何完成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行上获得信息
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行),因此我无法指定行数,因为我不知道表当前有多少行,所以只需计算行数,然后使用该数字?