如何使用sql实现分页(mysql)
一:分页需求:
客户端通过传递pagenum
(页码),pagesize
(每页显示的条数)两个参数去分页查询数据库表中的数据,那我们知道MySql数据库提供了分页的函数limit m,n
,但是该函数的用法具体的分析如下:
参数说明
limit m,n
其中m
表示需要查询的页码是从第几条数据开始,但需要注意的是m
的值是从零开始的,所以我们需要处理传过来的pagenum
,即pagenum-1
;
其中n表示每页中显示的条数。
简单使用
1.假设我们要查找a
表中的是第1页的,每页10条数据,代码如下:
select * from a limit 0,10;
2.假设我们要查找a
表中的是第3页的,每页10条数据,代码如下:
select * from a limit 20,10;
3.假设我们要查找a
表中的是第pagenum
页的,每页pagesize
条数据,代码如下:
select * from a limit (pagenum-1)*pagesize,pagesize;
实际运用
exports.getActicleList = (req, res) => {
const sql = `select a.id,a.title,a.pub_date,a.state,b.name as cate_name from ev_articles a,ev_article_cate b where a.cate_id=b.id limit ?,?`
db.query(sql, [(req.query.pagenum - 1) * req.query.pagesize, req.query.pagesize], (err, results) => {
if (err) return res.cc(err)
res.send({
status: 0,
message: 'success',
data: results,
total: results.length
})
})
}
注:上面的代码实现的是从两个表中查找关联数据,同时实现分页效果。