分页查找SQL

select * from (
	select rownum as rn ,t.* from
	(
		select s.* ,c.classes_name from t_student s join t_classes c on s.classes_id = c.classes_id
	) t where rownum <= pageNo * pageSize
) where rn > (pageNo - 1) * pageSize

### 实现 MySQL 分页查询 在 MySQL 中执行分页查询主要依赖于 `SELECT` 语句配合 `WHERE`, `ORDER BY`, `LIMIT` 和 `OFFSET` 关键字。下面详细介绍这些组件的作用以及具体的应用方式。 #### 使用 LIMIT 和 OFFSET 进行简单分页 最常见的方式是利用 `LIMIT` 和 `OFFSET` 来控制返回的结果集大小及其起始位置: ```sql SELECT column1, column2,... FROM table_name WHERE condition1 = value1 AND condition2 = value2 -- 添加更多条件 ORDER BY some_column [ASC | DESC] LIMIT page_size OFFSET offset_value; ``` 这里,`page_size` 表示每一页要获取的记录数量;而 `offset_value` 则指定了从哪一条记录开始读取数据[^1]。 对于动态计算偏移量的情况,可以采用如下公式:`offset_value = (page_number - 1) * page_size`,其中 `page_number` 是当前请求的具体页面编号[^2]。 #### 基于变量的方法实现更复杂的分页逻辑 另一种方法涉及到了 SQL 用户定义变量 (`@variable`) 的应用,这允许为每一行分配唯一的行号以便后续过滤操作: ```sql SET @rownum := 0; SELECT * FROM ( SELECT (@rownum := @rownum + 1) AS row_num, t.* FROM your_table t ORDER BY specific_column ) ranked_rows WHERE row_num BETWEEN ((current_page - 1) * items_per_page + 1) AND (current_page * items_per_page); ``` 此方案虽然稍微复杂一点,但是提供了更大的灵活性特别是在处理大数据集或者需要自定义排序规则的时候非常有用。 #### 单纯依靠 LIMIT 子句完成初步分页功能 如果只是想要快速查看部分结果而不关心总共有多少条目,则可以直接运用 `LIMIT` 参数限制输出长度: ```sql SELECT * FROM table_name LIMIT number_of_records_to_return; ``` 这种方式适用于只需要浏览前几项的情形,比如预览最新添加的内容等场合[^3]。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值