前端用的element-ui框架,在做分页器的功能的时候,它需要一个数据总数展示的字段。
image因为也是刚刚换的mysql做的数据库,也不是很熟,做到这里我想这返回总数和分页数据的话不是需要去同时查询两次数据,一个查总数的sql语句,一个查数据的语句么。不过正常来说这么去查两次肯定不是最好的选择。然后去百度找了下mysql做分页功能的案例。
有sql语句是可以查询总数的COUNT(*)
但是,听说是有更好的方式实现。
imagelet sql = `select sql_calc_found_rows * from article ${str} limit ${start},${page_size};`
let result = await Service.findData(sql)
let count = await Service.findData(`SELECT FOUND_ROWS() as total;`)
//在查询前加上这个 sql_calc_found_rows 返回查询记录的总数
//后面直接 SELECT FOUND_ROWS() as total这个就可以获取
然后说用这个的好处是,可以只请求一次,减少查询次数。由于我也不太懂mysql,虽然是结果是我想要的了,但是也不太清楚我这样写会不会去查询两次了,如果有路过大神可以请解答一下,先谢谢!
网友评论