mysql怎么使用 limit 分页,select * from table order by id asc limit 0,20 第一页查询出来的是1~20,我以前误解了以为是20-0然后是查询0~20,我的公式是 select * from table order by id asc limit (page-1)*20,(page*20);查询第2页的结果发现不是我要的。第2页 20~40应该怎么查,正确的分页公式应该怎么写,新手求指导。
2 回答

小怪兽爱吃肉
TA贡献1852条经验 获得超1个赞
对于数据不多的分页..可以用limit
select * from table limit (20,20)
表示从第20行开始..向后移动20行..就是你说的相当于第20行到第40行..同理从第40行到第90行就是limit(40,50)

哈士奇WWW
TA贡献1799条经验 获得超6个赞
创建一个存储过程吧,这样分页的参数方便传递,注意limit 部分不能直接+参数,要用拼SQL语句的方式。例子如下:
CREATE PROCEDURE usp_GetList(pageSize INT, pageIndex INT)
BEGIN
SET @SQL = CONCAT('SELECT A, B,C,D FROM TABLEORDER BY ID ASC limit ',pageIndex,',',pageSize);
PREPARE sqlstmt FROM @SQL;
EXECUTE sqlstmt;
DEALLOCATE PREPARE sqlstmt;
END
添加回答
举报
0/150
提交
取消