1.MySql分页查询语句
SELECT * FROM table_name WHERE 1 = 1 ORDER BY gmt_create LIMIT 10 OFFSET 10;
其中table_name是你的表名称,gmt_create是创建时间
ORDER BY gmt_create表示根据创建时间排序
LIMIT 10表示查询出来10条记录
OFFSET 10表示开始记录的偏移量是10,表示从第11条记录开始
2.SQLServer分页查询语句
SELECT * FROM table_name WHERE 1 = 1 ORDER BY gmt_create OFFSET 10 ROWS FETCH NEXT 10 ROWS ONLY;
其中table_name是表名称,gmt_create是创建时间
OFFSET 10 ROWS类似于MySql中的OFFSET 10表示偏移量
FETCH NEXT 10 ROWS类似于MySql中的LIMIT 10表示需要查询的记录数量
3.Oracle数据库分页
考虑到效率问题,分为以下两种情况
1.分页查询没有偏移量的情况
SELECT * FROM ( SELECT * FROM table_name WHERE 1 = 1 ORDER BY gmt_create) WHERE rownum <= 10
其中table_name表示表名称,gmt_create表示创建时间
rownum是ORACLE的函数,从1开始,表示当前记录在查询出来的记录中的行数,所以最后是rownum <= 10而不是 rownum<10
2.分页查询有偏移量的情况
SELECT
*
FROM
(
SELECT
row_data.*, ROWNUM AS current_row_num
FROM
(
SELECT
*
FROM
table_name
ORDER BY
gmt_create
) row_data
WHERE
ROWNUM <= 20
)
WHERE
current_row_num > 10;
其中table_name是表名称, gmt_create是创建时间
最内层SQL嵌套查询出来前20条记录,外层前台表示从前20条记录中找出来第11条到20条记录