给定分页结果集中特定元素的MySQL主键,是否有一个函数来获取元素所在的页码?
如果没有,什么是可以帮助我到达那里的伪代码?请注意,主键可以删除,序列中会有“间隙”,因此单独的算术可能无效......
答案 0 :(得分:2)
SELECT COUNT(*) as amountBefore FROM `table` WHERE `id` <= 'id'
page = ceil(amountBefore / amountPerPage)
答案 1 :(得分: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;
(假设您的ID为17
,而您的每页商品为15
,而您订购的商品为published
)
但是请注意,任何解决方案(如果你在PHP中更是如此)都会有些浪费,因为很多数据都是临时收集的 - 如果它以任何方式可能尝试通过路由/获取参数接收当前页面/网址。