You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何从SQL查询结果中获取指定区间范围的条目数据

SQL查询指定范围结果条目方法

实现范围查询的前提是必须显式指定排序规则,SQL默认返回结果的顺序不固定,不加ORDER BY直接取范围会得到不确定的结果。不同数据库的实现语法如下:

通用SQL:2008标准写法

支持PostgreSQL 13+、MySQL 8.0+、SQL Server 2012+等新版本数据库:

SELECT * 
FROM images_table 
WHERE catagory = 'trees'
ORDER BY id ASC -- 替换为实际需要的排序字段,比如上传时间、资源ID等
OFFSET 39 ROWS -- 跳过前39条,从第40条开始读取
FETCH NEXT 21 ROWS ONLY; -- 共读取21条,覆盖第40到第60条的全部条目

MySQL 8.0以下 / MariaDB 写法

使用LIMIT语法,第一个参数为偏移量,第二个参数为读取条数:

SELECT * 
FROM images_table 
WHERE catagory = 'trees'
ORDER BY id ASC
LIMIT 39, 21;

Oracle 11g及更早版本写法

通过ROWNUM伪列实现范围过滤:

SELECT * FROM (
    SELECT t.*, ROWNUM AS rn
    FROM (
        SELECT * FROM images_table WHERE catagory = 'trees' ORDER BY id ASC
    ) t
    WHERE ROWNUM <= 60
)
WHERE rn >= 40;

注意事项

  • 排序字段建议选择唯一值字段(比如主键ID),避免出现排序字段值相同导致结果顺序不稳定的问题
  • 大多数数据库的偏移量从0开始计数,要从第N条开始读取时,偏移量需要填写N-1
  • 第40条到第60条共包含21条数据,注意不要填错读取条数参数

内容的提问来源于stack exchange,提问作者user3257171

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 04:48:04