1. 解题思路
- 错误思路(如果你赶时间可以跳过,直接看正确思路): 一开始看到这题的时候,想说一道简答题为啥通过率只有18.1%???于是自己也进行解答,才发现这么低通过率是有原因的。。。因为一开始审题不仔细!误以为第三页就是3开头的数据,且只有3个。于是使用LIKE模型匹配查询,但是后来报错发现其实3开头的device_id是有4个;其中3132这一行是在第二页显示的,并不应该包括,所以这里用LIKE模糊匹配会出现错误❌。
- 正确思路:
其实分页查询主要用到LIMIT函数,而要查找第三页的结果,正确的写法是LIMIT 6,3。这里简单解释一下第一个6和第二个3是怎么来的:
- 6表示分页查询从索引第几位开始,索引从0开始算。(根据题意,每3位是一页,那么第三页的索引对应位置是6)
- 3表示每一页查询的个数,因为题目显示每页有3条结果。所以要显示第三页的所有结果,即个数=3。
最后别忘了它还要按学号排序,使用ORDER BY函数对device_id字段排序即可。
2. 参考代码
SELECT * FROM user_profile ORDER BY device_id LIMIT 6, 3;