MySQL分页查询求助:如何获取指定页的男性用户数据?
解决男性用户分页查询的问题
嘿,我来帮你搞定这个分页查询的问题~你的原语句有两个关键问题导致无效,我给你拆解下并给出正确的写法:
原语句的问题
- 缺少排序字段:
ORDER BY DESC里没指定要排序的字段,数据库不知道按什么来降序排列,必须写成ORDER BY id DESC(因为你要按id降序取最新数据) - LIMIT位置错误:
LIMIT必须放在ORDER BY之后,要先把符合条件的数据按正确顺序排好,再做分页截取,不然会先乱序截取再排序,结果完全不对
正确的分页查询写法
分页的核心逻辑是:筛选男性用户 → 按id降序排序 → 用LIMIT截取对应页码的数据
偏移量的计算规则是:偏移量 = (页码 - 1) * 每页条数,这里每页3条,所以各页的语句如下:
第1页(显示id13、12、10)
SELECT * FROM users WHERE gender = 'm' ORDER BY id DESC LIMIT 0, 3;
第2页(显示id9、7、5)
SELECT * FROM users WHERE gender = 'm' ORDER BY id DESC LIMIT 3, 3;
第3页(显示id2)
SELECT * FROM users WHERE gender = 'm' ORDER BY id DESC LIMIT 6, 3;
这样执行每个语句就能得到你想要的分页结果啦~
内容的提问来源于stack exchange,提问作者user10993220
相关产品推荐
相关产品推荐

