╔═══════════════════╗║ i name score ║╠═══════════════════╣║ 1 Will 123 ║║ 2 Joe 100 ║║ 3 Bill ║║ 4 Max ║║ 5 Jan 433 ║║ 6 Susi 42 ║║ 7 Chris 11 ║║ 8 Noa ║║ 9 Sisi 4 ║╚═══════════════════╝ ( n* ^* _4 p" K, R
现在我需要一个基于我正在搜索的数据的子集。例如,我正在寻找第五个地方。在我的结果中,我不仅需要 Jan 记录,我还需要 Jan 前两个记录和 Jan 以下两个记录。因此,我有以下结果集:: o, H' \5 c% o9 j+ \, a$ X1 F
╔═══════════════════╗║ id name score ║╠═══════════════════╣║ 3 Bill ║║ 4 Max ║║ 5 Jan 433 ║║ 6 Susi 42 ║║ 7 Chris ║╚═══════════════════╝# ]/ ~6 {& C/ O6 y* x
那是我得到的sql:' G I0 B7 _* d' C7 B
select @a:= id from quiz.score where username = 'Jan'; set @i=0;SELECT @i:=@i 1 as Platz,s.* FROM quiz.score s where id BETWEEN @a-5 AND @a 5 order by points desc;- K! e8 y) G }7 H `" R
这里的问题是,@a是id记录。有没有办法使用计算值?@i:=@i 1?: r2 ~. q* E0 E6 R+ ~
非常感谢您的帮助。 . P; l5 J( w! G 0 p. d, M4 |, k+ @# H2 K 解决方案: