给定分页结果集中特定元素的 MySQL 主键,是否有一个函数可以获取该元素所在的页码?
如果没有,有什么伪代码可以帮助我到达那里?请注意,可以删除主键,并且序列中会有“间隙”,因此仅靠简单的算术可能无法工作......
给定分页结果集中特定元素的 MySQL 主键,是否有一个函数可以获取该元素所在的页码?
如果没有,有什么伪代码可以帮助我到达那里?请注意,可以删除主键,并且序列中会有“间隙”,因此仅靠简单的算术可能无法工作......
SELECT COUNT(*) as amountBefore FROM `table` WHERE `id` <= 'id'
page = ceil(amountBefore / amountPerPage)
像这样的东西:
SELECT FLOOR(POSITION/15) FROM (
SELECT @rownum:=@rownum+1 as POSITION, id
FROM table_name, (SELECT @rownum:=0) r
ORDER BY published DESC
) t WHERE id = 17;
(给定您的 id17
和您每页的商品15
以及您订购的属性是published
)
但请注意,任何解决方案(如果你在 PHP 中更是如此)有点浪费,因为大量数据是临时收集的 - 如果以任何方式可能尝试通过路由/获取参数/url 接收当前页面.