有一个mysql查询。
假设: 通过field2从mytable order中选择primary_field,field2
field2不是唯一的。
现在在结果中如果我有一个有值的记录(536,any_value)。
我想得到偏移量(结果中记录的位置)。
事实上,我需要它来获取当前记录的下一个和上一个记录。
我不想获取所有记录,然后在php中处理它以获得下一个和上一个记录。
我想在mysql查询中完成它。是不是可以在mysql查询?
答案 0 :(得分:3)
嗯,是的,不是。如果您有结果,则可能无法检索特定行(如果它是非唯一的)。但是,如果您只想获取行号:
select @rownum:=@rownum+1 ‘rank’, t.*
from my_table t, (SELECT @rownum:=0) r order by field2;