1

给定分页结果集中特定元素的 MySQL 主键,是否有一个函数可以获取该元素所在的页码?

如果没有,有什么伪代码可以帮助我到达那里?请注意,可以删除主键,并且序列中会有“间隙”,因此仅靠简单的算术可能无法工作......

4

2 回答 2

2
SELECT COUNT(*) as amountBefore FROM `table` WHERE `id` <= 'id'

page = ceil(amountBefore / amountPerPage)
于 2012-11-14T08:39:01.130 回答
2

像这样的东西:

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 接收当前页面.

于 2012-11-14T08:46:00.420 回答