SQL分页的写法主要有两种:使用LIMIT和OFFSET关键字,以及使用ROW_NUMBER()函数。
SELECT * FROM 表名 LIMIT 每页记录数 OFFSET 起始位置;
其中,每页记录数表示每页显示的记录数量,起始位置表示从第几条记录开始显示。例如,如果要显示第2页,每页显示10条记录,可以使用以下语句:
SELECT * FROM 表名 LIMIT 10 OFFSET 10;
SELECT *
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY 排序字段) AS RowNum, *
FROM 表名
) AS temp
WHERE RowNum > 起始位置 AND RowNum <= (起始位置 + 每页记录数);
其中,排序字段表示按照哪个字段进行排序,起始位置表示从第几条记录开始显示,每页记录数表示每页显示的记录数量。例如,如果要显示第2页,每页显示10条记录,可以使用以下语句:
SELECT *
FROM (
SELECT ROW_NUMBER() OVER (ORDER BY 排序字段) AS RowNum, *
FROM 表名
) AS temp
WHERE RowNum > 10 AND RowNum <= 20;
这两种写法可以根据需要选择使用,使用LIMIT和OFFSET关键字的写法简单直观,但在处理大数据量时可能性能较差;而使用ROW_NUMBER()函数的写法相对复杂,但在处理大数据量时性能较好。