在MySQL分页结果中寻找特定记录

Lwy*_*yrn 8 php mysql pagination seek

我有一个经典的分页系统使用LIMIT startrecord, endrecord,我想弄清楚X记录所在的页码.

我现在唯一的想法是递归地寻找所有记录来找出它.但我正在寻找一种更"经济"的方法!

有任何想法吗 ?

Sim*_*mon 5

您可以使用子查询创建包含结果及其位置的表,然后查询您正在查看的特定条目:

SET @rank=0; 
SELECT rank, record 
FROM (
    SELECT 
        @rank:=@rank+1 AS rank, 
        record 
    FROM table
) as subquery 
WHERE record = x;
Run Code Online (Sandbox Code Playgroud)

返回的表将向记录显示它在原始查询中出现的排名.您可以将排名除以每页的结果数...或者将其构建到查询中.希望这可以帮助.