我有一個(遊戲)排行榜表,其中包含由另一個查詢更新的排名。它以ID爲中心 - 當我查詢表時,我最好想要取回N條記錄。所以,我已經做了UNION在記錄都與限制N/2,像這樣:確保從MySQL查詢返回正確的行數
(SELECT * FROM test1 t WHERE t.rank > (SELECT rank FROM test1 t2 WHERE id=ID)+0 ORDER BY rank LIMIT 0, N/2)
UNION ALL
(SELECT * FROM test1 t WHERE t.rank <= (SELECT rank FROM test1 t2 WHERE id=ID)+0 ORDER BY rank desc LIMIT 0, N/2) ORDER BY rank
儘管這並不完全工作的時候在領先榜首位,它只會返回較低的N/2。有沒有辦法確保它總能返回N條記錄?我確實認爲你可以有目的地獲得比需要更多的記錄,然後修剪你不需要的記錄。雖然我不知道如何用查詢來做到這一點!
任何幫助表示讚賞:)
很好的答案!乾杯。 –