SQL查询语句中的 limit 与 offset 的区别:
limit y 分句表示: 读取 y 条数据
limit x, y 分句表示: 跳过 x 条数据,读取 y 条数据
limit y offset x 分句表示: 跳过 x 条数据,读取 y 条数据
比如分页获取数据:
第1页: 从第0个开始,获取20条数据
select * from testtable limit 0, 20;
select * from testtable limit 20 offset 0;
第2页: 从第20个开始,获取20条数据
select * from testtable limit 20, 20;
select * from testtable limit 20 offset 20;
第3页: 从第40个开始,获取20条数据
select * from testtable limit 40, 20;
select * from testtable limit 20 offset 40;
在编程过程中,y一般用pagesize表示,代表每一页读取多少条数据,x一般用pagenumber表示,比如通过gin.Context获取当前页page,然后pagenumber=(page-1)*pagesize;程序如下所示:
tagService := tag_service.Tag{
Name: name,
State: state,
PageSize: setting.AppSetting.PageSize,
PageNum: util.GetPage(c),
}
//
// 分页页码的获取方法
func GetPage(c *gin.Context) int{
result:=0
page,_:=com.StrTo(c.Query("page")).Int()
if page>0{
result=(page-1)*setting.AppSetting.PageSize
}
return result
}
网友评论