SQL 分页查询的写法取决于你使用的数据库类型,下面按常见数据库给你总结:
使用 LIMIT 和 OFFSET
SELECT *
FROM table_name
ORDER BY id
LIMIT 10 OFFSET 20;
含义:
LIMIT 10:每页 10 条OFFSET 20:跳过前 20 条(第 3 页)简化写法:
LIMIT 20, 10;
-- 等价于 LIMIT 10 OFFSET 20
使用 OFFSET FETCH
SELECT *
FROM table_name
ORDER BY id
OFFSET 20 ROWS
FETCH NEXT 10 ROWS ONLY;
使用 ROWNUM
SELECT *
FROM (
SELECT t.*, ROWNUM rn
FROM (
SELECT * FROM table_name ORDER BY id
) t
WHERE ROWNUM <= 30
)
WHERE rn > 20;
支持 OFFSET FETCH
SELECT *
FROM table_name
ORDER BY id
OFFSET 20 ROWS
FETCH NEXT 10 ROWS ONLY;
假设:
pageNum:第几页(从 1 开始)pageSize:每页条数OFFSET = (pageNum - 1) * pageSize
LIMIT = pageSize
如果你告诉我:
我可以帮你写最优分页 SQL。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。