MYSQL:获取特定ID的下一个100和前100个ID

MYSQL:获取特定ID的下一个100和前100个ID,mysql,mariadb,Mysql,Mariadb,对于一个给定的ID,我想设置一个查询,它会给我接下来的100个ID和之前的100个ID。 这听起来很基本,但问题是,ID不是连续的。所以他们可以去像3,6,10,11 我的第一个想法是创建这样一个查询假设我希望id为100: Select * from mytable where id > 200 AND id < 400 但显然,这在ID不连续的情况下不起作用 我使用的是10.1.41 MariaDB。如果您使用的是mysql v8.0。您可以考虑使用ROWL号。 听起来不错-但

对于一个给定的ID,我想设置一个查询,它会给我接下来的100个ID和之前的100个ID。 这听起来很基本,但问题是,ID不是连续的。所以他们可以去像3,6,10,11

我的第一个想法是创建这样一个查询假设我希望id为100:

Select * from mytable where id > 200 AND id < 400
但显然,这在ID不连续的情况下不起作用

我使用的是10.1.41 MariaDB。

如果您使用的是mysql v8.0。您可以考虑使用ROWL号。


听起来不错-但给了我一个语法错误,这就是我用作查询的语法错误:从select row_number over order by id as rn中选择*从mytable t1中选择*其中rn在4568169和4568369之间,您使用的是MySQL 8.0吗?MySQL的早期版本不支持窗口函数。@stats0007,将*改为列名,或将*改为frontIn MariaDB,窗口函数最初是在10.2.0中实现的:问题已关闭,但值得一提的是:使用关闭消息中链接问题的并集的解决方案对我来说很有效。
select * from 
(select *, row_number() over (order by id) as rn from tableA) t1 where rn between 200 and 300