/users/1
是分页结果的第一页。它运行一个查询:
SELECT * FROM users ORDER BY surname, id LIMIT 0, 100;
/users/2
调整生成的 SQL。LIMIT 100, 100
显示分页结果的第二页等。
当它们按姓氏排序时,我想实现指向这些相同分页结果的 AZ 链接;按日期排序时基于年份的链接;当按整数字段排序时,基于数字的链接。你明白了。
例如: URL/users/A
将重定向到/users/1
,但是我如何有效地确定应该/users/B
重定向到哪个页面。
我知道/users/B
可以运行一个“过滤器”查询来提取姓氏以 B 开头的用户并在页面上显示。但是我想避免创建另一个页面,因此我想要一个重定向。
我还可以遍历SELECT surname FROM users ORDER BY surname
计算 B 和其他字母开始位置的结果,并将开始位置除以每页的结果(100),但这效率低下。我认为这需要一些聪明的 SQL。我使用 MySQL。
使用 Postgres 的类似问题: 分页:找出项目所在的页面(给定主键和排序顺序)