假设您有一个带有名为“table_id”的整数主键的表
是否可以在单个查询中提取具有特定 id 的行以及该行之前的 X 行以及之后的 X 行?
例如,如果您的 id 为 (1,2,8,12,16,120,250,354),X 为 2,并且您拥有的 id 为 16,则选择应返回 id 为 8,12,16,120,250 的行
我知道如何通过多个查询来完成此操作,我想知道如何在一次传递中完成此操作(子查询、联合等都很好)。
谢谢你的帮助
您可以在之前的项目以及之后的项目和之后的项目之间建立并集,但必须将它们设置为子查询才能对它们进行排序:
select * from (
select * from thetable where table_id >= 16 order by table_id limit 3
) x
union all
select * from (
select * from thetable where table_id < 16 order by table_id desc limit 2
) y
order by table_id
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1032 次 |
| 最近记录: |