有没有办法在mysql结果集中获取记录的偏移量?

时间:2011-08-08 04:15:21

标签: mysql

有一个mysql查询。

假设: 通过field2从mytable order中选择primary_field,field2

field2不是唯一的。

现在在结果中如果我有一个有值的记录(536,any_value)。

我想得到偏移量(结果中记录的位置)。

事实上,我需要它来获取当前记录的下一个和上一个记录。

我不想获取所有记录,然后在php中处理它以获得下一个和上一个记录。

我想在mysql查询中完成它。是不是可以在mysql查询?

1 个答案:

答案 0 :(得分:3)

嗯,是的,不是。如果您有结果,则可能无法检索特定行(如果它是非唯一的)。但是,如果您只想获取行号:

select @rownum:=@rownum+1 ‘rank’, t.* 
   from my_table t, (SELECT @rownum:=0) r order by field2;

哦,还有credit where credit is due