ランキングのA位からB位の間のレコードをN件ランダムで取得するSQL
ランキングのA位からB位の間のレコードをN件ランダムに取得するSQL
ただし、自分の記録は除く
A
range = B - A offset = A - 1 SELECT * FROM ranking, (SELECT id AS sid FROM ranking WHERE user_id != uid ORDER BY record ASC LIMIT range OFFSET offset) tmp WHERE ranking.id = tmp.sid ORDER BY RAND() LIMIT N;
user_id != uidを消すと自分の記録も含めることが可能。