我有一个使用 MySql 数据库的应用程序,它显示分页的记录列表,用户可以向其中添加新记录。我知道如何使用 LIMIT 等获取分页结果,但问题是添加新记录时如何转到特定页面。如果页面大小为 20,并且用户正在查看第一页,并且他们添加了第 23 条记录(例如 100 条记录),我们如何确定向用户显示哪个页面。
因此,本质上,给定页面大小和特定记录,我如何确定要显示页面中的哪个“页面”。总页数不包括它们所属表的所有记录,但获取它们的标准是静态的。
编辑:
我应该更具体一些。这些记录包含唯一 ID 字段和字符串名称字段。结果记录按名称字母顺序排序。另外,这是一个java应用程序。
我唯一能想到的是选择按名称排序的所有所需记录,然后如何找到特定记录的这些结果中的位置。从该位置可以很容易地计算出页码,因为我们知道页面大小,但我不确定它们是否是用于获取结果中记录位置的 MySql 语法。
“愚蠢”的解决方案是获取所有结果,然后在应用程序代码(java)中确定所有结果中的特定记录位置。但这似乎是一种更有效的方式。
SELECT COUNT(*) as CNT FROM tbl WHERE name < (SELECT name FROM tbl WHERE id = 42)
之后你只需划分CNT
值为每页每轮的行数 (Math.floor()
) it
或者你甚至可以在 sql 中做到这一点:
SELECT FLOOR(COUNT(*) / 20) AS page_number ...
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)