次の関係があるとしましょう。
╔═══════════════════╗
║ i++ name score ║
╠═══════════════════╣
║ 1 Will 123 ║
║ 2 Joe 100 ║
║ 3 Bill 99 ║
║ 4 Max 89 ║
║ 5 Jan 43 ║
║ 6 Susi 42 ║
║ 7 Chris 11 ║
║ 8 Noa 9 ║
║ 9 Sisi 4 ║
╚═══════════════════╝
ここで、探しているデータに基づくサブセットが必要です。たとえば、私は適切な場所を探しています。私の結果では、Jan のレコードだけでなく、Jan の前の 2 つのレコードと Jan の後ろの 2 つのレコードも必要です。したがって、次の結果セットがあります。
╔═══════════════════╗
║ id++ name score ║
╠═══════════════════╣
║ 3 Bill 99 ║
║ 4 Max 89 ║
║ 5 Jan 43 ║
║ 6 Susi 42 ║
║ 7 Chris 11 ║
╚═══════════════════╝
それは私が得たSQLです:
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;
ここでの問題は、それ@a
がid
レコードの . 計算値を使用する方法はあります@i:=@i+1
か?
どうもありがとうございました。